StringUtils.java

1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
package org.apache.commons.lang3;
18
19
import java.io.UnsupportedEncodingException;
20
import java.nio.charset.Charset;
21
import java.text.Normalizer;
22
import java.util.ArrayList;
23
import java.util.Arrays;
24
import java.util.Iterator;
25
import java.util.List;
26
import java.util.Locale;
27
import java.util.Objects;
28
import java.util.regex.Pattern;
29
30
/**
31
 * <p>Operations on {@link java.lang.String} that are
32
 * {@code null} safe.</p>
33
 *
34
 * <ul>
35
 *  <li><b>IsEmpty/IsBlank</b>
36
 *      - checks if a String contains text</li>
37
 *  <li><b>Trim/Strip</b>
38
 *      - removes leading and trailing whitespace</li>
39
 *  <li><b>Equals/Compare</b>
40
 *      - compares two strings null-safe</li>
41
 *  <li><b>startsWith</b>
42
 *      - check if a String starts with a prefix null-safe</li>
43
 *  <li><b>endsWith</b>
44
 *      - check if a String ends with a suffix null-safe</li>
45
 *  <li><b>IndexOf/LastIndexOf/Contains</b>
46
 *      - null-safe index-of checks
47
 *  <li><b>IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut</b>
48
 *      - index-of any of a set of Strings</li>
49
 *  <li><b>ContainsOnly/ContainsNone/ContainsAny</b>
50
 *      - does String contains only/none/any of these characters</li>
51
 *  <li><b>Substring/Left/Right/Mid</b>
52
 *      - null-safe substring extractions</li>
53
 *  <li><b>SubstringBefore/SubstringAfter/SubstringBetween</b>
54
 *      - substring extraction relative to other strings</li>
55
 *  <li><b>Split/Join</b>
56
 *      - splits a String into an array of substrings and vice versa</li>
57
 *  <li><b>Remove/Delete</b>
58
 *      - removes part of a String</li>
59
 *  <li><b>Replace/Overlay</b>
60
 *      - Searches a String and replaces one String with another</li>
61
 *  <li><b>Chomp/Chop</b>
62
 *      - removes the last part of a String</li>
63
 *  <li><b>AppendIfMissing</b>
64
 *      - appends a suffix to the end of the String if not present</li>
65
 *  <li><b>PrependIfMissing</b>
66
 *      - prepends a prefix to the start of the String if not present</li>
67
 *  <li><b>LeftPad/RightPad/Center/Repeat</b>
68
 *      - pads a String</li>
69
 *  <li><b>UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize</b>
70
 *      - changes the case of a String</li>
71
 *  <li><b>CountMatches</b>
72
 *      - counts the number of occurrences of one String in another</li>
73
 *  <li><b>IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable</b>
74
 *      - checks the characters in a String</li>
75
 *  <li><b>DefaultString</b>
76
 *      - protects against a null input String</li>
77
 *  <li><b>Rotate</b>
78
 *      - rotate (circular shift) a String</li>
79
 *  <li><b>Reverse/ReverseDelimited</b>
80
 *      - reverses a String</li>
81
 *  <li><b>Abbreviate</b>
82
 *      - abbreviates a string using ellipsis or another given String</li>
83
 *  <li><b>Difference</b>
84
 *      - compares Strings and reports on their differences</li>
85
 *  <li><b>LevenshteinDistance</b>
86
 *      - the number of changes needed to change one String into another</li>
87
 * </ul>
88
 *
89
 * <p>The {@code StringUtils} class defines certain words related to
90
 * String handling.</p>
91
 *
92
 * <ul>
93
 *  <li>null - {@code null}</li>
94
 *  <li>empty - a zero-length string ({@code ""})</li>
95
 *  <li>space - the space character ({@code ' '}, char 32)</li>
96
 *  <li>whitespace - the characters defined by {@link Character#isWhitespace(char)}</li>
97
 *  <li>trim - the characters &lt;= 32 as in {@link String#trim()}</li>
98
 * </ul>
99
 *
100
 * <p>{@code StringUtils} handles {@code null} input Strings quietly.
101
 * That is to say that a {@code null} input will return {@code null}.
102
 * Where a {@code boolean} or {@code int} is being returned
103
 * details vary by method.</p>
104
 *
105
 * <p>A side effect of the {@code null} handling is that a
106
 * {@code NullPointerException} should be considered a bug in
107
 * {@code StringUtils}.</p>
108
 *
109
 * <p>Methods in this class give sample code to explain their operation.
110
 * The symbol {@code *} is used to indicate any input including {@code null}.</p>
111
 *
112
 * <p>#ThreadSafe#</p>
113
 * @see java.lang.String
114
 * @since 1.0
115
 */
116
//@Immutable
117
public class StringUtils {
118
    // Performance testing notes (JDK 1.4, Jul03, scolebourne)
119
    // Whitespace:
120
    // Character.isWhitespace() is faster than WHITESPACE.indexOf()
121
    // where WHITESPACE is a string of all whitespace characters
122
    //
123
    // Character access:
124
    // String.charAt(n) versus toCharArray(), then array[n]
125
    // String.charAt(n) is about 15% worse for a 10K string
126
    // They are about equal for a length 50 string
127
    // String.charAt(n) is about 4 times better for a length 3 string
128
    // String.charAt(n) is best bet overall
129
    //
130
    // Append:
131
    // String.concat about twice as fast as StringBuffer.append
132
    // (not sure who tested this)
133
134
    /**
135
     * A String for a space character.
136
     *
137
     * @since 3.2
138
     */
139
    public static final String SPACE = " ";
140
141
    /**
142
     * The empty String {@code ""}.
143
     * @since 2.0
144
     */
145
    public static final String EMPTY = "";
146
147
    /**
148
     * A String for linefeed LF ("\n").
149
     *
150
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
151
     *      for Character and String Literals</a>
152
     * @since 3.2
153
     */
154
    public static final String LF = "\n";
155
156
    /**
157
     * A String for carriage return CR ("\r").
158
     *
159
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
160
     *      for Character and String Literals</a>
161
     * @since 3.2
162
     */
163
    public static final String CR = "\r";
164
165
    /**
166
     * Represents a failed index search.
167
     * @since 2.1
168
     */
169
    public static final int INDEX_NOT_FOUND = -1;
170
171
    /**
172
     * <p>The maximum size to which the padding constant(s) can expand.</p>
173
     */
174
    private static final int PAD_LIMIT = 8192;
175
176
    /**
177
     * <p>{@code StringUtils} instances should NOT be constructed in
178
     * standard programming. Instead, the class should be used as
179
     * {@code StringUtils.trim(" foo ");}.</p>
180
     *
181
     * <p>This constructor is public to permit tools that require a JavaBean
182
     * instance to operate.</p>
183
     */
184
    public StringUtils() {
185
        super();
186
    }
187
188
    // Empty checks
189
    //-----------------------------------------------------------------------
190
    /**
191
     * <p>Checks if a CharSequence is empty ("") or null.</p>
192
     *
193
     * <pre>
194
     * StringUtils.isEmpty(null)      = true
195
     * StringUtils.isEmpty("")        = true
196
     * StringUtils.isEmpty(" ")       = false
197
     * StringUtils.isEmpty("bob")     = false
198
     * StringUtils.isEmpty("  bob  ") = false
199
     * </pre>
200
     *
201
     * <p>NOTE: This method changed in Lang version 2.0.
202
     * It no longer trims the CharSequence.
203
     * That functionality is available in isBlank().</p>
204
     *
205
     * @param cs  the CharSequence to check, may be null
206
     * @return {@code true} if the CharSequence is empty or null
207
     * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
208
     */
209
    public static boolean isEmpty(final CharSequence cs) {
210 3 1. isEmpty : negated conditional → KILLED
2. isEmpty : negated conditional → KILLED
3. isEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null || cs.length() == 0;
211
    }
212
213
    /**
214
     * <p>Checks if a CharSequence is not empty ("") and not null.</p>
215
     *
216
     * <pre>
217
     * StringUtils.isNotEmpty(null)      = false
218
     * StringUtils.isNotEmpty("")        = false
219
     * StringUtils.isNotEmpty(" ")       = true
220
     * StringUtils.isNotEmpty("bob")     = true
221
     * StringUtils.isNotEmpty("  bob  ") = true
222
     * </pre>
223
     *
224
     * @param cs  the CharSequence to check, may be null
225
     * @return {@code true} if the CharSequence is not empty and not null
226
     * @since 3.0 Changed signature from isNotEmpty(String) to isNotEmpty(CharSequence)
227
     */
228
    public static boolean isNotEmpty(final CharSequence cs) {
229 2 1. isNotEmpty : negated conditional → KILLED
2. isNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isEmpty(cs);
230
    }
231
       
232
    /**
233
     * <p>Checks if any one of the CharSequences are empty ("") or null.</p>
234
     *
235
     * <pre>
236
     * StringUtils.isAnyEmpty(null)             = true
237
     * StringUtils.isAnyEmpty(null, "foo")      = true
238
     * StringUtils.isAnyEmpty("", "bar")        = true
239
     * StringUtils.isAnyEmpty("bob", "")        = true
240
     * StringUtils.isAnyEmpty("  bob  ", null)  = true
241
     * StringUtils.isAnyEmpty(" ", "bar")       = false
242
     * StringUtils.isAnyEmpty("foo", "bar")     = false
243
     * </pre>
244
     *
245
     * @param css  the CharSequences to check, may be null or empty
246
     * @return {@code true} if any of the CharSequences are empty or null
247
     * @since 3.2
248
     */
249
    public static boolean isAnyEmpty(final CharSequence... css) {
250 1 1. isAnyEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
251 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
252
      }
253 3 1. isAnyEmpty : changed conditional boundary → KILLED
2. isAnyEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyEmpty : negated conditional → KILLED
      for (final CharSequence cs : css){
254 1 1. isAnyEmpty : negated conditional → KILLED
        if (isEmpty(cs)) {
255 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
256
        }
257
      }
258 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
259
    }
260
261
    /**
262
     * <p>Checks if any one of the CharSequences are not empty ("") or null.</p>
263
     *
264
     * <pre>
265
     * StringUtils.isAnyNotEmpty(null)             = false
266
     * StringUtils.isAnyNotEmpty(null, "foo")      = true
267
     * StringUtils.isAnyNotEmpty("", "bar")        = true
268
     * StringUtils.isAnyNotEmpty("bob", "")        = true
269
     * StringUtils.isAnyNotEmpty("  bob  ", null)  = true
270
     * StringUtils.isAnyNotEmpty(" ", "bar")       = true
271
     * StringUtils.isAnyNotEmpty("foo", "bar")     = true
272
     * </pre>
273
     *
274
     * @param css  the CharSequences to check, may be null or empty
275
     * @return {@code true} if any of the CharSequences are empty or null
276
     * @since 3.6
277
     */
278
    public static boolean isAnyNotEmpty(final CharSequence... css) {
279 1 1. isAnyNotEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
280 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
281
      }
282 3 1. isAnyNotEmpty : changed conditional boundary → KILLED
2. isAnyNotEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyNotEmpty : negated conditional → KILLED
      for (final CharSequence cs : css) {
283 1 1. isAnyNotEmpty : negated conditional → KILLED
        if (isNotEmpty(cs)) {
284 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
285
        }
286
      }
287 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
288
    }
289
290
    /**
291
     * <p>Checks if none of the CharSequences are empty ("") or null.</p>
292
     *
293
     * <pre>
294
     * StringUtils.isNoneEmpty(null)             = false
295
     * StringUtils.isNoneEmpty(null, "foo")      = false
296
     * StringUtils.isNoneEmpty("", "bar")        = false
297
     * StringUtils.isNoneEmpty("bob", "")        = false
298
     * StringUtils.isNoneEmpty("  bob  ", null)  = false
299
     * StringUtils.isNoneEmpty(" ", "bar")       = true
300
     * StringUtils.isNoneEmpty("foo", "bar")     = true
301
     * </pre>
302
     *
303
     * @param css  the CharSequences to check, may be null or empty
304
     * @return {@code true} if none of the CharSequences are empty or null
305
     * @since 3.2
306
     */
307
    public static boolean isNoneEmpty(final CharSequence... css) {
308 2 1. isNoneEmpty : negated conditional → KILLED
2. isNoneEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyEmpty(css);
309
    }
310
311
    /**
312
     * <p>Checks if a CharSequence is whitespace, empty ("") or null.</p>
313
     *
314
     * <pre>
315
     * StringUtils.isBlank(null)      = true
316
     * StringUtils.isBlank("")        = true
317
     * StringUtils.isBlank(" ")       = true
318
     * StringUtils.isBlank("bob")     = false
319
     * StringUtils.isBlank("  bob  ") = false
320
     * </pre>
321
     *
322
     * @param cs  the CharSequence to check, may be null
323
     * @return {@code true} if the CharSequence is null, empty or whitespace
324
     * @since 2.0
325
     * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
326
     */
327
    public static boolean isBlank(final CharSequence cs) {
328
        int strLen;
329 2 1. isBlank : negated conditional → KILLED
2. isBlank : negated conditional → KILLED
        if (cs == null || (strLen = cs.length()) == 0) {
330 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
331
        }
332 3 1. isBlank : changed conditional boundary → KILLED
2. isBlank : Changed increment from 1 to -1 → KILLED
3. isBlank : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
333 1 1. isBlank : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
334 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
335
            }
336
        }
337 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
338
    }
339
340
    /**
341
     * <p>Checks if a CharSequence is not empty (""), not null and not whitespace only.</p>
342
     *
343
     * <pre>
344
     * StringUtils.isNotBlank(null)      = false
345
     * StringUtils.isNotBlank("")        = false
346
     * StringUtils.isNotBlank(" ")       = false
347
     * StringUtils.isNotBlank("bob")     = true
348
     * StringUtils.isNotBlank("  bob  ") = true
349
     * </pre>
350
     *
351
     * @param cs  the CharSequence to check, may be null
352
     * @return {@code true} if the CharSequence is
353
     *  not empty and not null and not whitespace
354
     * @since 2.0
355
     * @since 3.0 Changed signature from isNotBlank(String) to isNotBlank(CharSequence)
356
     */
357
    public static boolean isNotBlank(final CharSequence cs) {
358 2 1. isNotBlank : negated conditional → KILLED
2. isNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isBlank(cs);
359
    }
360
361
    /**
362
     * <p>Checks if any one of the CharSequences are blank ("") or null and not whitespace only.</p>
363
     *
364
     * <pre>
365
     * StringUtils.isAnyBlank(null)             = true
366
     * StringUtils.isAnyBlank(null, "foo")      = true
367
     * StringUtils.isAnyBlank(null, null)       = true
368
     * StringUtils.isAnyBlank("", "bar")        = true
369
     * StringUtils.isAnyBlank("bob", "")        = true
370
     * StringUtils.isAnyBlank("  bob  ", null)  = true
371
     * StringUtils.isAnyBlank(" ", "bar")       = true
372
     * StringUtils.isAnyBlank("foo", "bar")     = false
373
     * </pre>
374
     *
375
     * @param css  the CharSequences to check, may be null or empty
376
     * @return {@code true} if any of the CharSequences are blank or null or whitespace only
377
     * @since 3.2
378
     */
379
    public static boolean isAnyBlank(final CharSequence... css) {
380 1 1. isAnyBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
381 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
382
      }
383 3 1. isAnyBlank : changed conditional boundary → KILLED
2. isAnyBlank : Changed increment from 1 to -1 → KILLED
3. isAnyBlank : negated conditional → KILLED
      for (final CharSequence cs : css){
384 1 1. isAnyBlank : negated conditional → KILLED
        if (isBlank(cs)) {
385 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
386
        }
387
      }
388 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
389
    }
390
391
    /**
392
     * <p>Checks if any one of the CharSequences are not blank ("") or null and not whitespace only.</p>
393
     *
394
     * <pre>
395
     * StringUtils.isAnyNotBlank(null)             = false
396
     * StringUtils.isAnyNotBlank(null, "foo")      = true
397
     * StringUtils.isAnyNotBlank(null, null)       = false
398
     * StringUtils.isAnyNotBlank("", "bar")        = true
399
     * StringUtils.isAnyNotBlank("bob", "")        = true
400
     * StringUtils.isAnyNotBlank("  bob  ", null)  = true
401
     * StringUtils.isAnyNotBlank(" ", "bar")       = true
402
     * StringUtils.isAnyNotBlank("foo", "bar")     = false
403
     * </pre>
404
     *
405
     * @param css  the CharSequences to check, may be null or empty
406
     * @return {@code true} if any of the CharSequences are not blank or null or whitespace only
407
     * @since 3.6
408
     */
409
    public static boolean isAnyNotBlank(final CharSequence... css) {
410 1 1. isAnyNotBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
411 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
412
      }
413 3 1. isAnyNotBlank : changed conditional boundary → KILLED
2. isAnyNotBlank : Changed increment from 1 to -1 → KILLED
3. isAnyNotBlank : negated conditional → KILLED
      for (final CharSequence cs : css) {
414 1 1. isAnyNotBlank : negated conditional → KILLED
        if (isNotBlank(cs)) {
415 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
416
        }
417
      }
418 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
419
    }
420
421
    /**
422
     * <p>Checks if none of the CharSequences are blank ("") or null and whitespace only.</p>
423
     *
424
     * <pre>
425
     * StringUtils.isNoneBlank(null)             = false
426
     * StringUtils.isNoneBlank(null, "foo")      = false
427
     * StringUtils.isNoneBlank(null, null)       = false
428
     * StringUtils.isNoneBlank("", "bar")        = false
429
     * StringUtils.isNoneBlank("bob", "")        = false
430
     * StringUtils.isNoneBlank("  bob  ", null)  = false
431
     * StringUtils.isNoneBlank(" ", "bar")       = false
432
     * StringUtils.isNoneBlank("foo", "bar")     = true
433
     * </pre>
434
     *
435
     * @param css  the CharSequences to check, may be null or empty
436
     * @return {@code true} if none of the CharSequences are blank or null or whitespace only
437
     * @since 3.2
438
     */
439
    public static boolean isNoneBlank(final CharSequence... css) {
440 2 1. isNoneBlank : negated conditional → KILLED
2. isNoneBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyBlank(css);
441
    }
442
443
    // Trim
444
    //-----------------------------------------------------------------------
445
    /**
446
     * <p>Removes control characters (char &lt;= 32) from both
447
     * ends of this String, handling {@code null} by returning
448
     * {@code null}.</p>
449
     *
450
     * <p>The String is trimmed using {@link String#trim()}.
451
     * Trim removes start and end characters &lt;= 32.
452
     * To strip whitespace use {@link #strip(String)}.</p>
453
     *
454
     * <p>To trim your choice of characters, use the
455
     * {@link #strip(String, String)} methods.</p>
456
     *
457
     * <pre>
458
     * StringUtils.trim(null)          = null
459
     * StringUtils.trim("")            = ""
460
     * StringUtils.trim("     ")       = ""
461
     * StringUtils.trim("abc")         = "abc"
462
     * StringUtils.trim("    abc    ") = "abc"
463
     * </pre>
464
     *
465
     * @param str  the String to be trimmed, may be null
466
     * @return the trimmed string, {@code null} if null String input
467
     */
468
    public static String trim(final String str) {
469 2 1. trim : negated conditional → KILLED
2. trim : mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? null : str.trim();
470
    }
471
472
    /**
473
     * <p>Removes control characters (char &lt;= 32) from both
474
     * ends of this String returning {@code null} if the String is
475
     * empty ("") after the trim or if it is {@code null}.
476
     *
477
     * <p>The String is trimmed using {@link String#trim()}.
478
     * Trim removes start and end characters &lt;= 32.
479
     * To strip whitespace use {@link #stripToNull(String)}.</p>
480
     *
481
     * <pre>
482
     * StringUtils.trimToNull(null)          = null
483
     * StringUtils.trimToNull("")            = null
484
     * StringUtils.trimToNull("     ")       = null
485
     * StringUtils.trimToNull("abc")         = "abc"
486
     * StringUtils.trimToNull("    abc    ") = "abc"
487
     * </pre>
488
     *
489
     * @param str  the String to be trimmed, may be null
490
     * @return the trimmed String,
491
     *  {@code null} if only chars &lt;= 32, empty or null String input
492
     * @since 2.0
493
     */
494
    public static String trimToNull(final String str) {
495
        final String ts = trim(str);
496 2 1. trimToNull : negated conditional → KILLED
2. trimToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(ts) ? null : ts;
497
    }
498
499
    /**
500
     * <p>Removes control characters (char &lt;= 32) from both
501
     * ends of this String returning an empty String ("") if the String
502
     * is empty ("") after the trim or if it is {@code null}.
503
     *
504
     * <p>The String is trimmed using {@link String#trim()}.
505
     * Trim removes start and end characters &lt;= 32.
506
     * To strip whitespace use {@link #stripToEmpty(String)}.</p>
507
     *
508
     * <pre>
509
     * StringUtils.trimToEmpty(null)          = ""
510
     * StringUtils.trimToEmpty("")            = ""
511
     * StringUtils.trimToEmpty("     ")       = ""
512
     * StringUtils.trimToEmpty("abc")         = "abc"
513
     * StringUtils.trimToEmpty("    abc    ") = "abc"
514
     * </pre>
515
     *
516
     * @param str  the String to be trimmed, may be null
517
     * @return the trimmed String, or an empty String if {@code null} input
518
     * @since 2.0
519
     */
520
    public static String trimToEmpty(final String str) {
521 2 1. trimToEmpty : negated conditional → KILLED
2. trimToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str.trim();
522
    }
523
524
    /**
525
     * <p>Truncates a String. This will turn
526
     * "Now is the time for all good men" into "Now is the time for".</p>
527
     *
528
     * <p>Specifically:</p>
529
     * <ul>
530
     *   <li>If {@code str} is less than {@code maxWidth} characters
531
     *       long, return it.</li>
532
     *   <li>Else truncate it to {@code substring(str, 0, maxWidth)}.</li>
533
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
534
     *       {@code IllegalArgumentException}.</li>
535
     *   <li>In no case will it return a String of length greater than
536
     *       {@code maxWidth}.</li>
537
     * </ul>
538
     *
539
     * <pre>
540
     * StringUtils.truncate(null, 0)       = null
541
     * StringUtils.truncate(null, 2)       = null
542
     * StringUtils.truncate("", 4)         = ""
543
     * StringUtils.truncate("abcdefg", 4)  = "abcd"
544
     * StringUtils.truncate("abcdefg", 6)  = "abcdef"
545
     * StringUtils.truncate("abcdefg", 7)  = "abcdefg"
546
     * StringUtils.truncate("abcdefg", 8)  = "abcdefg"
547
     * StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException
548
     * </pre>
549
     *
550
     * @param str  the String to truncate, may be null
551
     * @param maxWidth  maximum length of result String, must be positive
552
     * @return truncated String, {@code null} if null String input
553
     * @since 3.5
554
     */
555
    public static String truncate(final String str, final int maxWidth) {
556 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return truncate(str, 0, maxWidth);
557
    }
558
559
    /**
560
     * <p>Truncates a String. This will turn
561
     * "Now is the time for all good men" into "is the time for all".</p>
562
     *
563
     * <p>Works like {@code truncate(String, int)}, but allows you to specify
564
     * a "left edge" offset.
565
     *
566
     * <p>Specifically:</p>
567
     * <ul>
568
     *   <li>If {@code str} is less than {@code maxWidth} characters
569
     *       long, return it.</li>
570
     *   <li>Else truncate it to {@code substring(str, offset, maxWidth)}.</li>
571
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
572
     *       {@code IllegalArgumentException}.</li>
573
     *   <li>If {@code offset} is less than {@code 0}, throw an
574
     *       {@code IllegalArgumentException}.</li>
575
     *   <li>In no case will it return a String of length greater than
576
     *       {@code maxWidth}.</li>
577
     * </ul>
578
     *
579
     * <pre>
580
     * StringUtils.truncate(null, 0, 0) = null
581
     * StringUtils.truncate(null, 2, 4) = null
582
     * StringUtils.truncate("", 0, 10) = ""
583
     * StringUtils.truncate("", 2, 10) = ""
584
     * StringUtils.truncate("abcdefghij", 0, 3) = "abc"
585
     * StringUtils.truncate("abcdefghij", 5, 6) = "fghij"
586
     * StringUtils.truncate("raspberry peach", 10, 15) = "peach"
587
     * StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"
588
     * StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an IllegalArgumentException
589
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = "abcdefghij"
590
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = "abcdefghijklmno"
591
     * StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = "abcdefghijklmno"
592
     * StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"
593
     * StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"
594
     * StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"
595
     * StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"
596
     * StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"
597
     * StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"
598
     * StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"
599
     * StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"
600
     * StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"
601
     * StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"
602
     * StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"
603
     * StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"
604
     * StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"
605
     * StringUtils.truncate("abcdefghijklmno", 15, 1) = ""
606
     * StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""
607
     * StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = ""
608
     * StringUtils.truncate("abcdefghij", 3, -1) = throws an IllegalArgumentException
609
     * StringUtils.truncate("abcdefghij", -2, 4) = throws an IllegalArgumentException
610
     * </pre>
611
     *
612
     * @param str  the String to check, may be null
613
     * @param offset  left edge of source String
614
     * @param maxWidth  maximum length of result String, must be positive
615
     * @return truncated String, {@code null} if null String input
616
     * @since 3.5
617
     */
618
    public static String truncate(final String str, final int offset, final int maxWidth) {
619 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (offset < 0) {
620
            throw new IllegalArgumentException("offset cannot be negative");
621
        }
622 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (maxWidth < 0) {
623
            throw new IllegalArgumentException("maxWith cannot be negative");
624
        }
625 1 1. truncate : negated conditional → KILLED
        if (str == null) {
626 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
627
        }
628 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (offset > str.length()) {
629 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
630
        }
631 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (str.length() > maxWidth) {
632 4 1. truncate : changed conditional boundary → SURVIVED
2. truncate : Replaced integer addition with subtraction → KILLED
3. truncate : Replaced integer addition with subtraction → KILLED
4. truncate : negated conditional → KILLED
            final int ix = offset + maxWidth > str.length() ? str.length() : offset + maxWidth;
633 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(offset, ix);
634
        }
635 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(offset);
636
    }
637
638
    // Stripping
639
    //-----------------------------------------------------------------------
640
    /**
641
     * <p>Strips whitespace from the start and end of a String.</p>
642
     *
643
     * <p>This is similar to {@link #trim(String)} but removes whitespace.
644
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
645
     *
646
     * <p>A {@code null} input String returns {@code null}.</p>
647
     *
648
     * <pre>
649
     * StringUtils.strip(null)     = null
650
     * StringUtils.strip("")       = ""
651
     * StringUtils.strip("   ")    = ""
652
     * StringUtils.strip("abc")    = "abc"
653
     * StringUtils.strip("  abc")  = "abc"
654
     * StringUtils.strip("abc  ")  = "abc"
655
     * StringUtils.strip(" abc ")  = "abc"
656
     * StringUtils.strip(" ab c ") = "ab c"
657
     * </pre>
658
     *
659
     * @param str  the String to remove whitespace from, may be null
660
     * @return the stripped String, {@code null} if null String input
661
     */
662
    public static String strip(final String str) {
663 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return strip(str, null);
664
    }
665
666
    /**
667
     * <p>Strips whitespace from the start and end of a String  returning
668
     * {@code null} if the String is empty ("") after the strip.</p>
669
     *
670
     * <p>This is similar to {@link #trimToNull(String)} but removes whitespace.
671
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
672
     *
673
     * <pre>
674
     * StringUtils.stripToNull(null)     = null
675
     * StringUtils.stripToNull("")       = null
676
     * StringUtils.stripToNull("   ")    = null
677
     * StringUtils.stripToNull("abc")    = "abc"
678
     * StringUtils.stripToNull("  abc")  = "abc"
679
     * StringUtils.stripToNull("abc  ")  = "abc"
680
     * StringUtils.stripToNull(" abc ")  = "abc"
681
     * StringUtils.stripToNull(" ab c ") = "ab c"
682
     * </pre>
683
     *
684
     * @param str  the String to be stripped, may be null
685
     * @return the stripped String,
686
     *  {@code null} if whitespace, empty or null String input
687
     * @since 2.0
688
     */
689
    public static String stripToNull(String str) {
690 1 1. stripToNull : negated conditional → KILLED
        if (str == null) {
691 1 1. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
692
        }
693
        str = strip(str, null);
694 2 1. stripToNull : negated conditional → KILLED
2. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.isEmpty() ? null : str;
695
    }
696
697
    /**
698
     * <p>Strips whitespace from the start and end of a String  returning
699
     * an empty String if {@code null} input.</p>
700
     *
701
     * <p>This is similar to {@link #trimToEmpty(String)} but removes whitespace.
702
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
703
     *
704
     * <pre>
705
     * StringUtils.stripToEmpty(null)     = ""
706
     * StringUtils.stripToEmpty("")       = ""
707
     * StringUtils.stripToEmpty("   ")    = ""
708
     * StringUtils.stripToEmpty("abc")    = "abc"
709
     * StringUtils.stripToEmpty("  abc")  = "abc"
710
     * StringUtils.stripToEmpty("abc  ")  = "abc"
711
     * StringUtils.stripToEmpty(" abc ")  = "abc"
712
     * StringUtils.stripToEmpty(" ab c ") = "ab c"
713
     * </pre>
714
     *
715
     * @param str  the String to be stripped, may be null
716
     * @return the trimmed String, or an empty String if {@code null} input
717
     * @since 2.0
718
     */
719
    public static String stripToEmpty(final String str) {
720 2 1. stripToEmpty : negated conditional → KILLED
2. stripToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : strip(str, null);
721
    }
722
723
    /**
724
     * <p>Strips any of a set of characters from the start and end of a String.
725
     * This is similar to {@link String#trim()} but allows the characters
726
     * to be stripped to be controlled.</p>
727
     *
728
     * <p>A {@code null} input String returns {@code null}.
729
     * An empty string ("") input returns the empty string.</p>
730
     *
731
     * <p>If the stripChars String is {@code null}, whitespace is
732
     * stripped as defined by {@link Character#isWhitespace(char)}.
733
     * Alternatively use {@link #strip(String)}.</p>
734
     *
735
     * <pre>
736
     * StringUtils.strip(null, *)          = null
737
     * StringUtils.strip("", *)            = ""
738
     * StringUtils.strip("abc", null)      = "abc"
739
     * StringUtils.strip("  abc", null)    = "abc"
740
     * StringUtils.strip("abc  ", null)    = "abc"
741
     * StringUtils.strip(" abc ", null)    = "abc"
742
     * StringUtils.strip("  abcyx", "xyz") = "  abc"
743
     * </pre>
744
     *
745
     * @param str  the String to remove characters from, may be null
746
     * @param stripChars  the characters to remove, null treated as whitespace
747
     * @return the stripped String, {@code null} if null String input
748
     */
749
    public static String strip(String str, final String stripChars) {
750 1 1. strip : negated conditional → KILLED
        if (isEmpty(str)) {
751 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
752
        }
753
        str = stripStart(str, stripChars);
754 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripEnd(str, stripChars);
755
    }
756
    
757
    /**
758
     * <p>Strips any of a set of characters from the start of a String.</p>
759
     *
760
     * <p>A {@code null} input String returns {@code null}.
761
     * An empty string ("") input returns the empty string.</p>
762
     *
763
     * <p>If the stripChars String is {@code null}, whitespace is
764
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
765
     *
766
     * <pre>
767
     * StringUtils.stripStart(null, *)          = null
768
     * StringUtils.stripStart("", *)            = ""
769
     * StringUtils.stripStart("abc", "")        = "abc"
770
     * StringUtils.stripStart("abc", null)      = "abc"
771
     * StringUtils.stripStart("  abc", null)    = "abc"
772
     * StringUtils.stripStart("abc  ", null)    = "abc  "
773
     * StringUtils.stripStart(" abc ", null)    = "abc "
774
     * StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
775
     * </pre>
776
     *
777
     * @param str  the String to remove characters from, may be null
778
     * @param stripChars  the characters to remove, null treated as whitespace
779
     * @return the stripped String, {@code null} if null String input
780
     */
781
    public static String stripStart(final String str, final String stripChars) {
782
        int strLen;
783 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
784 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
785
        }
786
        int start = 0;
787 1 1. stripStart : negated conditional → KILLED
        if (stripChars == null) {
788 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && Character.isWhitespace(str.charAt(start))) {
789 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
790
            }
791 1 1. stripStart : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
792 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
793
        } else {
794 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND) {
795 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
796
            }
797
        }
798 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
799
    }
800
801
    /**
802
     * <p>Strips any of a set of characters from the end of a String.</p>
803
     *
804
     * <p>A {@code null} input String returns {@code null}.
805
     * An empty string ("") input returns the empty string.</p>
806
     *
807
     * <p>If the stripChars String is {@code null}, whitespace is
808
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
809
     *
810
     * <pre>
811
     * StringUtils.stripEnd(null, *)          = null
812
     * StringUtils.stripEnd("", *)            = ""
813
     * StringUtils.stripEnd("abc", "")        = "abc"
814
     * StringUtils.stripEnd("abc", null)      = "abc"
815
     * StringUtils.stripEnd("  abc", null)    = "  abc"
816
     * StringUtils.stripEnd("abc  ", null)    = "abc"
817
     * StringUtils.stripEnd(" abc ", null)    = " abc"
818
     * StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
819
     * StringUtils.stripEnd("120.00", ".0")   = "12"
820
     * </pre>
821
     *
822
     * @param str  the String to remove characters from, may be null
823
     * @param stripChars  the set of characters to remove, null treated as whitespace
824
     * @return the stripped String, {@code null} if null String input
825
     */
826
    public static String stripEnd(final String str, final String stripChars) {
827
        int end;
828 2 1. stripEnd : negated conditional → KILLED
2. stripEnd : negated conditional → KILLED
        if (str == null || (end = str.length()) == 0) {
829 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
830
        }
831
832 1 1. stripEnd : negated conditional → KILLED
        if (stripChars == null) {
833 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && Character.isWhitespace(str.charAt(end - 1))) {
834 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
835
            }
836 1 1. stripEnd : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
837 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
838
        } else {
839 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND) {
840 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
841
            }
842
        }
843 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, end);
844
    }
845
846
    // StripAll
847
    //-----------------------------------------------------------------------
848
    /**
849
     * <p>Strips whitespace from the start and end of every String in an array.
850
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
851
     *
852
     * <p>A new array is returned each time, except for length zero.
853
     * A {@code null} array will return {@code null}.
854
     * An empty array will return itself.
855
     * A {@code null} array entry will be ignored.</p>
856
     *
857
     * <pre>
858
     * StringUtils.stripAll(null)             = null
859
     * StringUtils.stripAll([])               = []
860
     * StringUtils.stripAll(["abc", "  abc"]) = ["abc", "abc"]
861
     * StringUtils.stripAll(["abc  ", null])  = ["abc", null]
862
     * </pre>
863
     *
864
     * @param strs  the array to remove whitespace from, may be null
865
     * @return the stripped Strings, {@code null} if null array input
866
     */
867
    public static String[] stripAll(final String... strs) {
868 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripAll(strs, null);
869
    }
870
871
    /**
872
     * <p>Strips any of a set of characters from the start and end of every
873
     * String in an array.</p>
874
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
875
     *
876
     * <p>A new array is returned each time, except for length zero.
877
     * A {@code null} array will return {@code null}.
878
     * An empty array will return itself.
879
     * A {@code null} array entry will be ignored.
880
     * A {@code null} stripChars will strip whitespace as defined by
881
     * {@link Character#isWhitespace(char)}.</p>
882
     *
883
     * <pre>
884
     * StringUtils.stripAll(null, *)                = null
885
     * StringUtils.stripAll([], *)                  = []
886
     * StringUtils.stripAll(["abc", "  abc"], null) = ["abc", "abc"]
887
     * StringUtils.stripAll(["abc  ", null], null)  = ["abc", null]
888
     * StringUtils.stripAll(["abc  ", null], "yz")  = ["abc  ", null]
889
     * StringUtils.stripAll(["yabcz", null], "yz")  = ["abc", null]
890
     * </pre>
891
     *
892
     * @param strs  the array to remove characters from, may be null
893
     * @param stripChars  the characters to remove, null treated as whitespace
894
     * @return the stripped Strings, {@code null} if null array input
895
     */
896
    public static String[] stripAll(final String[] strs, final String stripChars) {
897
        int strsLen;
898 2 1. stripAll : negated conditional → KILLED
2. stripAll : negated conditional → KILLED
        if (strs == null || (strsLen = strs.length) == 0) {
899 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs;
900
        }
901
        final String[] newArr = new String[strsLen];
902 3 1. stripAll : changed conditional boundary → KILLED
2. stripAll : Changed increment from 1 to -1 → KILLED
3. stripAll : negated conditional → KILLED
        for (int i = 0; i < strsLen; i++) {
903
            newArr[i] = strip(strs[i], stripChars);
904
        }
905 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return newArr;
906
    }
907
908
    /**
909
     * <p>Removes diacritics (~= accents) from a string. The case will not be altered.</p>
910
     * <p>For instance, '&agrave;' will be replaced by 'a'.</p>
911
     * <p>Note that ligatures will be left as is.</p>
912
     *
913
     * <pre>
914
     * StringUtils.stripAccents(null)                = null
915
     * StringUtils.stripAccents("")                  = ""
916
     * StringUtils.stripAccents("control")           = "control"
917
     * StringUtils.stripAccents("&eacute;clair")     = "eclair"
918
     * </pre>
919
     *
920
     * @param input String to be stripped
921
     * @return input text with diacritics removed
922
     *
923
     * @since 3.0
924
     */
925
    // See also Lucene's ASCIIFoldingFilter (Lucene 2.9) that replaces accented characters by their unaccented equivalent (and uncommitted bug fix: https://issues.apache.org/jira/browse/LUCENE-1343?focusedCommentId=12858907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12858907).
926
    public static String stripAccents(final String input) {
927 1 1. stripAccents : negated conditional → KILLED
        if(input == null) {
928 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
929
        }
930
        final Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");//$NON-NLS-1$
931
        final StringBuilder decomposed = new StringBuilder(Normalizer.normalize(input, Normalizer.Form.NFD));
932 1 1. stripAccents : removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED
        convertRemainingAccentCharacters(decomposed);
933
        // Note that this doesn't correctly remove ligatures...
934 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return pattern.matcher(decomposed).replaceAll(StringUtils.EMPTY);
935
    }
936
937
    private static void convertRemainingAccentCharacters(final StringBuilder decomposed) {
938 3 1. convertRemainingAccentCharacters : changed conditional boundary → KILLED
2. convertRemainingAccentCharacters : Changed increment from 1 to -1 → KILLED
3. convertRemainingAccentCharacters : negated conditional → KILLED
        for (int i = 0; i < decomposed.length(); i++) {
939 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            if (decomposed.charAt(i) == '\u0141') {
940
                decomposed.deleteCharAt(i);
941
                decomposed.insert(i, 'L');
942 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            } else if (decomposed.charAt(i) == '\u0142') {
943
                decomposed.deleteCharAt(i);
944
                decomposed.insert(i, 'l');
945
            }
946
        }
947
    }
948
949
    // Equals
950
    //-----------------------------------------------------------------------
951
    /**
952
     * <p>Compares two CharSequences, returning {@code true} if they represent
953
     * equal sequences of characters.</p>
954
     *
955
     * <p>{@code null}s are handled without exceptions. Two {@code null}
956
     * references are considered to be equal. The comparison is case sensitive.</p>
957
     *
958
     * <pre>
959
     * StringUtils.equals(null, null)   = true
960
     * StringUtils.equals(null, "abc")  = false
961
     * StringUtils.equals("abc", null)  = false
962
     * StringUtils.equals("abc", "abc") = true
963
     * StringUtils.equals("abc", "ABC") = false
964
     * </pre>
965
     *
966
     * @see Object#equals(Object)
967
     * @param cs1  the first CharSequence, may be {@code null}
968
     * @param cs2  the second CharSequence, may be {@code null}
969
     * @return {@code true} if the CharSequences are equal (case-sensitive), or both {@code null}
970
     * @since 3.0 Changed signature from equals(String, String) to equals(CharSequence, CharSequence)
971
     */
972
    public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
973 1 1. equals : negated conditional → KILLED
        if (cs1 == cs2) {
974 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
975
        }
976 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
977 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
978
        }
979 1 1. equals : negated conditional → KILLED
        if (cs1.length() != cs2.length()) {
980 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
981
        }
982 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 instanceof String && cs2 instanceof String) {
983 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return cs1.equals(cs2);
984
        }
985 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
986
    }
987
988
    /**
989
     * <p>Compares two CharSequences, returning {@code true} if they represent
990
     * equal sequences of characters, ignoring case.</p>
991
     *
992
     * <p>{@code null}s are handled without exceptions. Two {@code null}
993
     * references are considered equal. Comparison is case insensitive.</p>
994
     *
995
     * <pre>
996
     * StringUtils.equalsIgnoreCase(null, null)   = true
997
     * StringUtils.equalsIgnoreCase(null, "abc")  = false
998
     * StringUtils.equalsIgnoreCase("abc", null)  = false
999
     * StringUtils.equalsIgnoreCase("abc", "abc") = true
1000
     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
1001
     * </pre>
1002
     *
1003
     * @param str1  the first CharSequence, may be null
1004
     * @param str2  the second CharSequence, may be null
1005
     * @return {@code true} if the CharSequence are equal, case insensitive, or
1006
     *  both {@code null}
1007
     * @since 3.0 Changed signature from equalsIgnoreCase(String, String) to equalsIgnoreCase(CharSequence, CharSequence)
1008
     */
1009
    public static boolean equalsIgnoreCase(final CharSequence str1, final CharSequence str2) {
1010 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : negated conditional → KILLED
        if (str1 == null || str2 == null) {
1011 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str1 == str2;
1012 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1 == str2) {
1013 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
1014 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1.length() != str2.length()) {
1015 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1016
        } else {
1017 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return CharSequenceUtils.regionMatches(str1, true, 0, str2, 0, str1.length());
1018
        }
1019
    }
1020
1021
    // Compare
1022
    //-----------------------------------------------------------------------
1023
    /**
1024
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1025
     * <ul>
1026
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1027
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1028
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1029
     * </ul>
1030
     *
1031
     * <p>This is a {@code null} safe version of :</p>
1032
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1033
     *
1034
     * <p>{@code null} value is considered less than non-{@code null} value.
1035
     * Two {@code null} references are considered equal.</p>
1036
     *
1037
     * <pre>
1038
     * StringUtils.compare(null, null)   = 0
1039
     * StringUtils.compare(null , "a")   &lt; 0
1040
     * StringUtils.compare("a", null)    &gt; 0
1041
     * StringUtils.compare("abc", "abc") = 0
1042
     * StringUtils.compare("a", "b")     &lt; 0
1043
     * StringUtils.compare("b", "a")     &gt; 0
1044
     * StringUtils.compare("a", "B")     &gt; 0
1045
     * StringUtils.compare("ab", "abc")  &lt; 0
1046
     * </pre>
1047
     *
1048
     * @see #compare(String, String, boolean)
1049
     * @see String#compareTo(String)
1050
     * @param str1  the String to compare from
1051
     * @param str2  the String to compare to
1052
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1053
     * @since 3.5
1054
     */
1055
    public static int compare(final String str1, final String str2) {
1056 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compare(str1, str2, true);
1057
    }
1058
1059
    /**
1060
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1061
     * <ul>
1062
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1063
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1064
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1065
     * </ul>
1066
     *
1067
     * <p>This is a {@code null} safe version of :</p>
1068
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1069
     *
1070
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1071
     * Two {@code null} references are considered equal.</p>
1072
     *
1073
     * <pre>
1074
     * StringUtils.compare(null, null, *)     = 0
1075
     * StringUtils.compare(null , "a", true)  &lt; 0
1076
     * StringUtils.compare(null , "a", false) &gt; 0
1077
     * StringUtils.compare("a", null, true)   &gt; 0
1078
     * StringUtils.compare("a", null, false)  &lt; 0
1079
     * StringUtils.compare("abc", "abc", *)   = 0
1080
     * StringUtils.compare("a", "b", *)       &lt; 0
1081
     * StringUtils.compare("b", "a", *)       &gt; 0
1082
     * StringUtils.compare("a", "B", *)       &gt; 0
1083
     * StringUtils.compare("ab", "abc", *)    &lt; 0
1084
     * </pre>
1085
     *
1086
     * @see String#compareTo(String)
1087
     * @param str1  the String to compare from
1088
     * @param str2  the String to compare to
1089
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1090
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1091
     * @since 3.5
1092
     */
1093
    public static int compare(final String str1, final String str2, final boolean nullIsLess) {
1094 1 1. compare : negated conditional → KILLED
        if (str1 == str2) {
1095 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1096
        }
1097 1 1. compare : negated conditional → KILLED
        if (str1 == null) {
1098 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1099
        }
1100 1 1. compare : negated conditional → KILLED
        if (str2 == null) {
1101 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1102
        }
1103 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareTo(str2);
1104
    }
1105
1106
    /**
1107
     * <p>Compare two Strings lexicographically, ignoring case differences,
1108
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1109
     * <ul>
1110
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1111
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1112
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1113
     * </ul>
1114
     *
1115
     * <p>This is a {@code null} safe version of :</p>
1116
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1117
     *
1118
     * <p>{@code null} value is considered less than non-{@code null} value.
1119
     * Two {@code null} references are considered equal.
1120
     * Comparison is case insensitive.</p>
1121
     *
1122
     * <pre>
1123
     * StringUtils.compareIgnoreCase(null, null)   = 0
1124
     * StringUtils.compareIgnoreCase(null , "a")   &lt; 0
1125
     * StringUtils.compareIgnoreCase("a", null)    &gt; 0
1126
     * StringUtils.compareIgnoreCase("abc", "abc") = 0
1127
     * StringUtils.compareIgnoreCase("abc", "ABC") = 0
1128
     * StringUtils.compareIgnoreCase("a", "b")     &lt; 0
1129
     * StringUtils.compareIgnoreCase("b", "a")     &gt; 0
1130
     * StringUtils.compareIgnoreCase("a", "B")     &lt; 0
1131
     * StringUtils.compareIgnoreCase("A", "b")     &lt; 0
1132
     * StringUtils.compareIgnoreCase("ab", "ABC")  &lt; 0
1133
     * </pre>
1134
     *
1135
     * @see #compareIgnoreCase(String, String, boolean)
1136
     * @see String#compareToIgnoreCase(String)
1137
     * @param str1  the String to compare from
1138
     * @param str2  the String to compare to
1139
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1140
     *          ignoring case differences.
1141
     * @since 3.5
1142
     */
1143
    public static int compareIgnoreCase(final String str1, final String str2) {
1144 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compareIgnoreCase(str1, str2, true);
1145
    }
1146
1147
    /**
1148
     * <p>Compare two Strings lexicographically, ignoring case differences,
1149
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1150
     * <ul>
1151
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1152
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1153
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1154
     * </ul>
1155
     *
1156
     * <p>This is a {@code null} safe version of :</p>
1157
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1158
     *
1159
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1160
     * Two {@code null} references are considered equal.
1161
     * Comparison is case insensitive.</p>
1162
     *
1163
     * <pre>
1164
     * StringUtils.compareIgnoreCase(null, null, *)     = 0
1165
     * StringUtils.compareIgnoreCase(null , "a", true)  &lt; 0
1166
     * StringUtils.compareIgnoreCase(null , "a", false) &gt; 0
1167
     * StringUtils.compareIgnoreCase("a", null, true)   &gt; 0
1168
     * StringUtils.compareIgnoreCase("a", null, false)  &lt; 0
1169
     * StringUtils.compareIgnoreCase("abc", "abc", *)   = 0
1170
     * StringUtils.compareIgnoreCase("abc", "ABC", *)   = 0
1171
     * StringUtils.compareIgnoreCase("a", "b", *)       &lt; 0
1172
     * StringUtils.compareIgnoreCase("b", "a", *)       &gt; 0
1173
     * StringUtils.compareIgnoreCase("a", "B", *)       &lt; 0
1174
     * StringUtils.compareIgnoreCase("A", "b", *)       &lt; 0
1175
     * StringUtils.compareIgnoreCase("ab", "abc", *)    &lt; 0
1176
     * </pre>
1177
     *
1178
     * @see String#compareToIgnoreCase(String)
1179
     * @param str1  the String to compare from
1180
     * @param str2  the String to compare to
1181
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1182
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1183
     *          ignoring case differences.
1184
     * @since 3.5
1185
     */
1186
    public static int compareIgnoreCase(final String str1, final String str2, final boolean nullIsLess) {
1187 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == str2) {
1188 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1189
        }
1190 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == null) {
1191 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1192
        }
1193 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str2 == null) {
1194 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1195
        }
1196 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareToIgnoreCase(str2);
1197
    }
1198
1199
    /**
1200
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1201
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>.</p>
1202
     *
1203
     * <pre>
1204
     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
1205
     * StringUtils.equalsAny(null, null, null)    = true
1206
     * StringUtils.equalsAny(null, "abc", "def")  = false
1207
     * StringUtils.equalsAny("abc", null, "def")  = false
1208
     * StringUtils.equalsAny("abc", "abc", "def") = true
1209
     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
1210
     * </pre>
1211
     *
1212
     * @param string to compare, may be {@code null}.
1213
     * @param searchStrings a vararg of strings, may be {@code null}.
1214
     * @return {@code true} if the string is equal (case-sensitive) to any other element of <code>searchStrings</code>;
1215
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1216
     * @since 3.5
1217
     */
1218
    public static boolean equalsAny(final CharSequence string, final CharSequence... searchStrings) {
1219 1 1. equalsAny : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1220 3 1. equalsAny : changed conditional boundary → KILLED
2. equalsAny : Changed increment from 1 to -1 → KILLED
3. equalsAny : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1221 1 1. equalsAny : negated conditional → KILLED
                if (equals(string, next)) {
1222 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1223
                }
1224
            }
1225
        }
1226 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1227
    }
1228
1229
1230
    /**
1231
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1232
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>, ignoring case.</p>
1233
     *
1234
     * <pre>
1235
     * StringUtils.equalsAnyIgnoreCase(null, (CharSequence[]) null) = false
1236
     * StringUtils.equalsAnyIgnoreCase(null, null, null)    = true
1237
     * StringUtils.equalsAnyIgnoreCase(null, "abc", "def")  = false
1238
     * StringUtils.equalsAnyIgnoreCase("abc", null, "def")  = false
1239
     * StringUtils.equalsAnyIgnoreCase("abc", "abc", "def") = true
1240
     * StringUtils.equalsAnyIgnoreCase("abc", "ABC", "DEF") = true
1241
     * </pre>
1242
     *
1243
     * @param string to compare, may be {@code null}.
1244
     * @param searchStrings a vararg of strings, may be {@code null}.
1245
     * @return {@code true} if the string is equal (case-insensitive) to any other element of <code>searchStrings</code>;
1246
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1247
     * @since 3.5
1248
     */
1249
    public static boolean equalsAnyIgnoreCase(final CharSequence string, final CharSequence...searchStrings) {
1250 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1251 3 1. equalsAnyIgnoreCase : changed conditional boundary → KILLED
2. equalsAnyIgnoreCase : Changed increment from 1 to -1 → KILLED
3. equalsAnyIgnoreCase : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1252 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
                if (equalsIgnoreCase(string, next)) {
1253 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1254
                }
1255
            }
1256
        }
1257 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1258
    }
1259
1260
    // IndexOf
1261
    //-----------------------------------------------------------------------
1262
    /**
1263
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1264
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1265
     *
1266
     * <p>A {@code null} or empty ("") CharSequence will return {@code INDEX_NOT_FOUND (-1)}.</p>
1267
     *
1268
     * <pre>
1269
     * StringUtils.indexOf(null, *)         = -1
1270
     * StringUtils.indexOf("", *)           = -1
1271
     * StringUtils.indexOf("aabaabaa", 'a') = 0
1272
     * StringUtils.indexOf("aabaabaa", 'b') = 2
1273
     * </pre>
1274
     *
1275
     * @param seq  the CharSequence to check, may be null
1276
     * @param searchChar  the character to find
1277
     * @return the first index of the search character,
1278
     *  -1 if no match or {@code null} string input
1279
     * @since 2.0
1280
     * @since 3.0 Changed signature from indexOf(String, int) to indexOf(CharSequence, int)
1281
     */
1282
    public static int indexOf(final CharSequence seq, final int searchChar) {
1283 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1284 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1285
        }
1286 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0);
1287
    }
1288
1289
    /**
1290
     * <p>Finds the first index within a CharSequence from a start position,
1291
     * handling {@code null}.
1292
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1293
     *
1294
     * <p>A {@code null} or empty ("") CharSequence will return {@code (INDEX_NOT_FOUND) -1}.
1295
     * A negative start position is treated as zero.
1296
     * A start position greater than the string length returns {@code -1}.</p>
1297
     *
1298
     * <pre>
1299
     * StringUtils.indexOf(null, *, *)          = -1
1300
     * StringUtils.indexOf("", *, *)            = -1
1301
     * StringUtils.indexOf("aabaabaa", 'b', 0)  = 2
1302
     * StringUtils.indexOf("aabaabaa", 'b', 3)  = 5
1303
     * StringUtils.indexOf("aabaabaa", 'b', 9)  = -1
1304
     * StringUtils.indexOf("aabaabaa", 'b', -1) = 2
1305
     * </pre>
1306
     *
1307
     * @param seq  the CharSequence to check, may be null
1308
     * @param searchChar  the character to find
1309
     * @param startPos  the start position, negative treated as zero
1310
     * @return the first index of the search character (always &ge; startPos),
1311
     *  -1 if no match or {@code null} string input
1312
     * @since 2.0
1313
     * @since 3.0 Changed signature from indexOf(String, int, int) to indexOf(CharSequence, int, int)
1314
     */
1315
    public static int indexOf(final CharSequence seq, final int searchChar, final int startPos) {
1316 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1317 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1318
        }
1319 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, startPos);
1320
    }
1321
1322
    /**
1323
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1324
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1325
     *
1326
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1327
     *
1328
     * <pre>
1329
     * StringUtils.indexOf(null, *)          = -1
1330
     * StringUtils.indexOf(*, null)          = -1
1331
     * StringUtils.indexOf("", "")           = 0
1332
     * StringUtils.indexOf("", *)            = -1 (except when * = "")
1333
     * StringUtils.indexOf("aabaabaa", "a")  = 0
1334
     * StringUtils.indexOf("aabaabaa", "b")  = 2
1335
     * StringUtils.indexOf("aabaabaa", "ab") = 1
1336
     * StringUtils.indexOf("aabaabaa", "")   = 0
1337
     * </pre>
1338
     *
1339
     * @param seq  the CharSequence to check, may be null
1340
     * @param searchSeq  the CharSequence to find, may be null
1341
     * @return the first index of the search CharSequence,
1342
     *  -1 if no match or {@code null} string input
1343
     * @since 2.0
1344
     * @since 3.0 Changed signature from indexOf(String, String) to indexOf(CharSequence, CharSequence)
1345
     */
1346
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq) {
1347 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1348 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1349
        }
1350 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0);
1351
    }
1352
1353
    /**
1354
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1355
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1356
     *
1357
     * <p>A {@code null} CharSequence will return {@code -1}.
1358
     * A negative start position is treated as zero.
1359
     * An empty ("") search CharSequence always matches.
1360
     * A start position greater than the string length only matches
1361
     * an empty search CharSequence.</p>
1362
     *
1363
     * <pre>
1364
     * StringUtils.indexOf(null, *, *)          = -1
1365
     * StringUtils.indexOf(*, null, *)          = -1
1366
     * StringUtils.indexOf("", "", 0)           = 0
1367
     * StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
1368
     * StringUtils.indexOf("aabaabaa", "a", 0)  = 0
1369
     * StringUtils.indexOf("aabaabaa", "b", 0)  = 2
1370
     * StringUtils.indexOf("aabaabaa", "ab", 0) = 1
1371
     * StringUtils.indexOf("aabaabaa", "b", 3)  = 5
1372
     * StringUtils.indexOf("aabaabaa", "b", 9)  = -1
1373
     * StringUtils.indexOf("aabaabaa", "b", -1) = 2
1374
     * StringUtils.indexOf("aabaabaa", "", 2)   = 2
1375
     * StringUtils.indexOf("abc", "", 9)        = 3
1376
     * </pre>
1377
     *
1378
     * @param seq  the CharSequence to check, may be null
1379
     * @param searchSeq  the CharSequence to find, may be null
1380
     * @param startPos  the start position, negative treated as zero
1381
     * @return the first index of the search CharSequence (always &ge; startPos),
1382
     *  -1 if no match or {@code null} string input
1383
     * @since 2.0
1384
     * @since 3.0 Changed signature from indexOf(String, String, int) to indexOf(CharSequence, CharSequence, int)
1385
     */
1386
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1387 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1388 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1389
        }
1390 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, startPos);
1391
    }
1392
1393
    /**
1394
     * <p>Finds the n-th index within a CharSequence, handling {@code null}.
1395
     * This method uses {@link String#indexOf(String)} if possible.</p>
1396
     * <p><b>Note:</b> The code starts looking for a match at the start of the target,
1397
     * incrementing the starting index by one after each successful match
1398
     * (unless {@code searchStr} is an empty string in which case the position
1399
     * is never incremented and {@code 0} is returned immediately).
1400
     * This means that matches may overlap.</p>
1401
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1402
     *
1403
     * <pre>
1404
     * StringUtils.ordinalIndexOf(null, *, *)          = -1
1405
     * StringUtils.ordinalIndexOf(*, null, *)          = -1
1406
     * StringUtils.ordinalIndexOf("", "", *)           = 0
1407
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0
1408
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1
1409
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2
1410
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5
1411
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
1412
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
1413
     * StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0
1414
     * StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0
1415
     * </pre>
1416
     *
1417
     * <p>Matches may overlap:</p>
1418
     * <pre>
1419
     * StringUtils.ordinalIndexOf("ababab","aba", 1)   = 0
1420
     * StringUtils.ordinalIndexOf("ababab","aba", 2)   = 2
1421
     * StringUtils.ordinalIndexOf("ababab","aba", 3)   = -1
1422
     *
1423
     * StringUtils.ordinalIndexOf("abababab", "abab", 1) = 0
1424
     * StringUtils.ordinalIndexOf("abababab", "abab", 2) = 2
1425
     * StringUtils.ordinalIndexOf("abababab", "abab", 3) = 4
1426
     * StringUtils.ordinalIndexOf("abababab", "abab", 4) = -1
1427
     * </pre>
1428
     *
1429
     * <p>Note that 'head(CharSequence str, int n)' may be implemented as: </p>
1430
     *
1431
     * <pre>
1432
     *   str.substring(0, lastOrdinalIndexOf(str, "\n", n))
1433
     * </pre>
1434
     *
1435
     * @param str  the CharSequence to check, may be null
1436
     * @param searchStr  the CharSequence to find, may be null
1437
     * @param ordinal  the n-th {@code searchStr} to find
1438
     * @return the n-th index of the search CharSequence,
1439
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1440
     * @since 2.1
1441
     * @since 3.0 Changed signature from ordinalIndexOf(String, String, int) to ordinalIndexOf(CharSequence, CharSequence, int)
1442
     */
1443
    public static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1444 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, false);
1445
    }
1446
1447
    /**
1448
     * <p>Finds the n-th index within a String, handling {@code null}.
1449
     * This method uses {@link String#indexOf(String)} if possible.</p>
1450
     * <p>Note that matches may overlap<p>
1451
     *
1452
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1453
     *
1454
     * @param str  the CharSequence to check, may be null
1455
     * @param searchStr  the CharSequence to find, may be null
1456
     * @param ordinal  the n-th {@code searchStr} to find, overlapping matches are allowed.
1457
     * @param lastIndex true if lastOrdinalIndexOf() otherwise false if ordinalIndexOf()
1458
     * @return the n-th index of the search CharSequence,
1459
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1460
     */
1461
    // Shared code between ordinalIndexOf(String,String,int) and lastOrdinalIndexOf(String,String,int)
1462
    private static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal, final boolean lastIndex) {
1463 4 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
3. ordinalIndexOf : negated conditional → KILLED
4. ordinalIndexOf : negated conditional → KILLED
        if (str == null || searchStr == null || ordinal <= 0) {
1464 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1465
        }
1466 1 1. ordinalIndexOf : negated conditional → KILLED
        if (searchStr.length() == 0) {
1467 2 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return lastIndex ? str.length() : 0;
1468
        }
1469
        int found = 0;
1470
        // set the initial index beyond the end of the string
1471
        // this is to allow for the initial index decrement/increment
1472 1 1. ordinalIndexOf : negated conditional → KILLED
        int index = lastIndex ? str.length() : INDEX_NOT_FOUND;
1473
        do {
1474 1 1. ordinalIndexOf : negated conditional → KILLED
            if (lastIndex) {
1475 1 1. ordinalIndexOf : Replaced integer subtraction with addition → KILLED
                index = CharSequenceUtils.lastIndexOf(str, searchStr, index - 1); // step backwards thru string
1476
            } else {
1477 1 1. ordinalIndexOf : Replaced integer addition with subtraction → KILLED
                index = CharSequenceUtils.indexOf(str, searchStr, index + 1); // step forwards through string
1478
            }
1479 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
            if (index < 0) {
1480 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return index;
1481
            }
1482 1 1. ordinalIndexOf : Changed increment from 1 to -1 → KILLED
            found++;
1483 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
        } while (found < ordinal);
1484 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return index;
1485
    }
1486
1487
    /**
1488
     * <p>Case in-sensitive find of the first index within a CharSequence.</p>
1489
     *
1490
     * <p>A {@code null} CharSequence will return {@code -1}.
1491
     * A negative start position is treated as zero.
1492
     * An empty ("") search CharSequence always matches.
1493
     * A start position greater than the string length only matches
1494
     * an empty search CharSequence.</p>
1495
     *
1496
     * <pre>
1497
     * StringUtils.indexOfIgnoreCase(null, *)          = -1
1498
     * StringUtils.indexOfIgnoreCase(*, null)          = -1
1499
     * StringUtils.indexOfIgnoreCase("", "")           = 0
1500
     * StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
1501
     * StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
1502
     * StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
1503
     * </pre>
1504
     *
1505
     * @param str  the CharSequence to check, may be null
1506
     * @param searchStr  the CharSequence to find, may be null
1507
     * @return the first index of the search CharSequence,
1508
     *  -1 if no match or {@code null} string input
1509
     * @since 2.5
1510
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String) to indexOfIgnoreCase(CharSequence, CharSequence)
1511
     */
1512
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1513 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfIgnoreCase(str, searchStr, 0);
1514
    }
1515
1516
    /**
1517
     * <p>Case in-sensitive find of the first index within a CharSequence
1518
     * from the specified position.</p>
1519
     *
1520
     * <p>A {@code null} CharSequence will return {@code -1}.
1521
     * A negative start position is treated as zero.
1522
     * An empty ("") search CharSequence always matches.
1523
     * A start position greater than the string length only matches
1524
     * an empty search CharSequence.</p>
1525
     *
1526
     * <pre>
1527
     * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
1528
     * StringUtils.indexOfIgnoreCase(*, null, *)          = -1
1529
     * StringUtils.indexOfIgnoreCase("", "", 0)           = 0
1530
     * StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1531
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
1532
     * StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
1533
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
1534
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
1535
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
1536
     * StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
1537
     * StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
1538
     * </pre>
1539
     *
1540
     * @param str  the CharSequence to check, may be null
1541
     * @param searchStr  the CharSequence to find, may be null
1542
     * @param startPos  the start position, negative treated as zero
1543
     * @return the first index of the search CharSequence (always &ge; startPos),
1544
     *  -1 if no match or {@code null} string input
1545
     * @since 2.5
1546
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String, int) to indexOfIgnoreCase(CharSequence, CharSequence, int)
1547
     */
1548
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1549 2 1. indexOfIgnoreCase : negated conditional → KILLED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1550 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1551
        }
1552 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1553
            startPos = 0;
1554
        }
1555 2 1. indexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
2. indexOfIgnoreCase : Replaced integer addition with subtraction → KILLED
        final int endLimit = str.length() - searchStr.length() + 1;
1556 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos > endLimit) {
1557 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1558
        }
1559 1 1. indexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1560 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1561
        }
1562 3 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
3. indexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i < endLimit; i++) {
1563 1 1. indexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1564 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1565
            }
1566
        }
1567 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1568
    }
1569
1570
    // LastIndexOf
1571
    //-----------------------------------------------------------------------
1572
    /**
1573
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1574
     * This method uses {@link String#lastIndexOf(int)} if possible.</p>
1575
     *
1576
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.</p>
1577
     *
1578
     * <pre>
1579
     * StringUtils.lastIndexOf(null, *)         = -1
1580
     * StringUtils.lastIndexOf("", *)           = -1
1581
     * StringUtils.lastIndexOf("aabaabaa", 'a') = 7
1582
     * StringUtils.lastIndexOf("aabaabaa", 'b') = 5
1583
     * </pre>
1584
     *
1585
     * @param seq  the CharSequence to check, may be null
1586
     * @param searchChar  the character to find
1587
     * @return the last index of the search character,
1588
     *  -1 if no match or {@code null} string input
1589
     * @since 2.0
1590
     * @since 3.0 Changed signature from lastIndexOf(String, int) to lastIndexOf(CharSequence, int)
1591
     */
1592
    public static int lastIndexOf(final CharSequence seq, final int searchChar) {
1593 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1594 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1595
        }
1596 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, seq.length());
1597
    }
1598
1599
    /**
1600
     * <p>Finds the last index within a CharSequence from a start position,
1601
     * handling {@code null}.
1602
     * This method uses {@link String#lastIndexOf(int, int)} if possible.</p>
1603
     *
1604
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.
1605
     * A negative start position returns {@code -1}.
1606
     * A start position greater than the string length searches the whole string.
1607
     * The search starts at the startPos and works backwards; matches starting after the start
1608
     * position are ignored.
1609
     * </p>
1610
     *
1611
     * <pre>
1612
     * StringUtils.lastIndexOf(null, *, *)          = -1
1613
     * StringUtils.lastIndexOf("", *,  *)           = -1
1614
     * StringUtils.lastIndexOf("aabaabaa", 'b', 8)  = 5
1615
     * StringUtils.lastIndexOf("aabaabaa", 'b', 4)  = 2
1616
     * StringUtils.lastIndexOf("aabaabaa", 'b', 0)  = -1
1617
     * StringUtils.lastIndexOf("aabaabaa", 'b', 9)  = 5
1618
     * StringUtils.lastIndexOf("aabaabaa", 'b', -1) = -1
1619
     * StringUtils.lastIndexOf("aabaabaa", 'a', 0)  = 0
1620
     * </pre>
1621
     *
1622
     * @param seq  the CharSequence to check, may be null
1623
     * @param searchChar  the character to find
1624
     * @param startPos  the start position
1625
     * @return the last index of the search character (always &le; startPos),
1626
     *  -1 if no match or {@code null} string input
1627
     * @since 2.0
1628
     * @since 3.0 Changed signature from lastIndexOf(String, int, int) to lastIndexOf(CharSequence, int, int)
1629
     */
1630
    public static int lastIndexOf(final CharSequence seq, final int searchChar, final int startPos) {
1631 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1632 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1633
        }
1634 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, startPos);
1635
    }
1636
1637
    /**
1638
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1639
     * This method uses {@link String#lastIndexOf(String)} if possible.</p>
1640
     *
1641
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1642
     *
1643
     * <pre>
1644
     * StringUtils.lastIndexOf(null, *)          = -1
1645
     * StringUtils.lastIndexOf(*, null)          = -1
1646
     * StringUtils.lastIndexOf("", "")           = 0
1647
     * StringUtils.lastIndexOf("aabaabaa", "a")  = 7
1648
     * StringUtils.lastIndexOf("aabaabaa", "b")  = 5
1649
     * StringUtils.lastIndexOf("aabaabaa", "ab") = 4
1650
     * StringUtils.lastIndexOf("aabaabaa", "")   = 8
1651
     * </pre>
1652
     *
1653
     * @param seq  the CharSequence to check, may be null
1654
     * @param searchSeq  the CharSequence to find, may be null
1655
     * @return the last index of the search String,
1656
     *  -1 if no match or {@code null} string input
1657
     * @since 2.0
1658
     * @since 3.0 Changed signature from lastIndexOf(String, String) to lastIndexOf(CharSequence, CharSequence)
1659
     */
1660
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq) {
1661 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1662 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1663
        }
1664 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, seq.length());
1665
    }
1666
1667
    /**
1668
     * <p>Finds the n-th last index within a String, handling {@code null}.
1669
     * This method uses {@link String#lastIndexOf(String)}.</p>
1670
     *
1671
     * <p>A {@code null} String will return {@code -1}.</p>
1672
     *
1673
     * <pre>
1674
     * StringUtils.lastOrdinalIndexOf(null, *, *)          = -1
1675
     * StringUtils.lastOrdinalIndexOf(*, null, *)          = -1
1676
     * StringUtils.lastOrdinalIndexOf("", "", *)           = 0
1677
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7
1678
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6
1679
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5
1680
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2
1681
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
1682
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
1683
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8
1684
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8
1685
     * </pre>
1686
     *
1687
     * <p>Note that 'tail(CharSequence str, int n)' may be implemented as: </p>
1688
     *
1689
     * <pre>
1690
     *   str.substring(lastOrdinalIndexOf(str, "\n", n) + 1)
1691
     * </pre>
1692
     *
1693
     * @param str  the CharSequence to check, may be null
1694
     * @param searchStr  the CharSequence to find, may be null
1695
     * @param ordinal  the n-th last {@code searchStr} to find
1696
     * @return the n-th last index of the search CharSequence,
1697
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1698
     * @since 2.5
1699
     * @since 3.0 Changed signature from lastOrdinalIndexOf(String, String, int) to lastOrdinalIndexOf(CharSequence, CharSequence, int)
1700
     */
1701
    public static int lastOrdinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1702 1 1. lastOrdinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, true);
1703
    }
1704
1705
    /**
1706
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1707
     * This method uses {@link String#lastIndexOf(String, int)} if possible.</p>
1708
     *
1709
     * <p>A {@code null} CharSequence will return {@code -1}.
1710
     * A negative start position returns {@code -1}.
1711
     * An empty ("") search CharSequence always matches unless the start position is negative.
1712
     * A start position greater than the string length searches the whole string.
1713
     * The search starts at the startPos and works backwards; matches starting after the start
1714
     * position are ignored.
1715
     * </p>
1716
     *
1717
     * <pre>
1718
     * StringUtils.lastIndexOf(null, *, *)          = -1
1719
     * StringUtils.lastIndexOf(*, null, *)          = -1
1720
     * StringUtils.lastIndexOf("aabaabaa", "a", 8)  = 7
1721
     * StringUtils.lastIndexOf("aabaabaa", "b", 8)  = 5
1722
     * StringUtils.lastIndexOf("aabaabaa", "ab", 8) = 4
1723
     * StringUtils.lastIndexOf("aabaabaa", "b", 9)  = 5
1724
     * StringUtils.lastIndexOf("aabaabaa", "b", -1) = -1
1725
     * StringUtils.lastIndexOf("aabaabaa", "a", 0)  = 0
1726
     * StringUtils.lastIndexOf("aabaabaa", "b", 0)  = -1
1727
     * StringUtils.lastIndexOf("aabaabaa", "b", 1)  = -1
1728
     * StringUtils.lastIndexOf("aabaabaa", "b", 2)  = 2
1729
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = -1
1730
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = 2
1731
     * </pre>
1732
     *
1733
     * @param seq  the CharSequence to check, may be null
1734
     * @param searchSeq  the CharSequence to find, may be null
1735
     * @param startPos  the start position, negative treated as zero
1736
     * @return the last index of the search CharSequence (always &le; startPos),
1737
     *  -1 if no match or {@code null} string input
1738
     * @since 2.0
1739
     * @since 3.0 Changed signature from lastIndexOf(String, String, int) to lastIndexOf(CharSequence, CharSequence, int)
1740
     */
1741
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1742 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1743 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1744
        }
1745 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, startPos);
1746
    }
1747
1748
    /**
1749
     * <p>Case in-sensitive find of the last index within a CharSequence.</p>
1750
     *
1751
     * <p>A {@code null} CharSequence will return {@code -1}.
1752
     * A negative start position returns {@code -1}.
1753
     * An empty ("") search CharSequence always matches unless the start position is negative.
1754
     * A start position greater than the string length searches the whole string.</p>
1755
     *
1756
     * <pre>
1757
     * StringUtils.lastIndexOfIgnoreCase(null, *)          = -1
1758
     * StringUtils.lastIndexOfIgnoreCase(*, null)          = -1
1759
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
1760
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
1761
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
1762
     * </pre>
1763
     *
1764
     * @param str  the CharSequence to check, may be null
1765
     * @param searchStr  the CharSequence to find, may be null
1766
     * @return the first index of the search CharSequence,
1767
     *  -1 if no match or {@code null} string input
1768
     * @since 2.5
1769
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String) to lastIndexOfIgnoreCase(CharSequence, CharSequence)
1770
     */
1771
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1772 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1773 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1774
        }
1775 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return lastIndexOfIgnoreCase(str, searchStr, str.length());
1776
    }
1777
1778
    /**
1779
     * <p>Case in-sensitive find of the last index within a CharSequence
1780
     * from the specified position.</p>
1781
     *
1782
     * <p>A {@code null} CharSequence will return {@code -1}.
1783
     * A negative start position returns {@code -1}.
1784
     * An empty ("") search CharSequence always matches unless the start position is negative.
1785
     * A start position greater than the string length searches the whole string.
1786
     * The search starts at the startPos and works backwards; matches starting after the start
1787
     * position are ignored.
1788
     * </p>
1789
     *
1790
     * <pre>
1791
     * StringUtils.lastIndexOfIgnoreCase(null, *, *)          = -1
1792
     * StringUtils.lastIndexOfIgnoreCase(*, null, *)          = -1
1793
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
1794
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
1795
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
1796
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
1797
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
1798
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1799
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
1800
     * </pre>
1801
     *
1802
     * @param str  the CharSequence to check, may be null
1803
     * @param searchStr  the CharSequence to find, may be null
1804
     * @param startPos  the start position
1805
     * @return the last index of the search CharSequence (always &le; startPos),
1806
     *  -1 if no match or {@code null} input
1807
     * @since 2.5
1808
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String, int) to lastIndexOfIgnoreCase(CharSequence, CharSequence, int)
1809
     */
1810
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1811 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1812 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1813
        }
1814 3 1. lastIndexOfIgnoreCase : changed conditional boundary → SURVIVED
2. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos > str.length() - searchStr.length()) {
1815 1 1. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
            startPos = str.length() - searchStr.length();
1816
        }
1817 2 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1818 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1819
        }
1820 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1821 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1822
        }
1823
1824 3 1. lastIndexOfIgnoreCase : Changed increment from -1 to 1 → TIMED_OUT
2. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i >= 0; i--) {
1825 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1826 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1827
            }
1828
        }
1829 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1830
    }
1831
1832
    // Contains
1833
    //-----------------------------------------------------------------------
1834
    /**
1835
     * <p>Checks if CharSequence contains a search character, handling {@code null}.
1836
     * This method uses {@link String#indexOf(int)} if possible.</p>
1837
     *
1838
     * <p>A {@code null} or empty ("") CharSequence will return {@code false}.</p>
1839
     *
1840
     * <pre>
1841
     * StringUtils.contains(null, *)    = false
1842
     * StringUtils.contains("", *)      = false
1843
     * StringUtils.contains("abc", 'a') = true
1844
     * StringUtils.contains("abc", 'z') = false
1845
     * </pre>
1846
     *
1847
     * @param seq  the CharSequence to check, may be null
1848
     * @param searchChar  the character to find
1849
     * @return true if the CharSequence contains the search character,
1850
     *  false if not or {@code null} string input
1851
     * @since 2.0
1852
     * @since 3.0 Changed signature from contains(String, int) to contains(CharSequence, int)
1853
     */
1854
    public static boolean contains(final CharSequence seq, final int searchChar) {
1855 1 1. contains : negated conditional → KILLED
        if (isEmpty(seq)) {
1856 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1857
        }
1858 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0) >= 0;
1859
    }
1860
1861
    /**
1862
     * <p>Checks if CharSequence contains a search CharSequence, handling {@code null}.
1863
     * This method uses {@link String#indexOf(String)} if possible.</p>
1864
     *
1865
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1866
     *
1867
     * <pre>
1868
     * StringUtils.contains(null, *)     = false
1869
     * StringUtils.contains(*, null)     = false
1870
     * StringUtils.contains("", "")      = true
1871
     * StringUtils.contains("abc", "")   = true
1872
     * StringUtils.contains("abc", "a")  = true
1873
     * StringUtils.contains("abc", "z")  = false
1874
     * </pre>
1875
     *
1876
     * @param seq  the CharSequence to check, may be null
1877
     * @param searchSeq  the CharSequence to find, may be null
1878
     * @return true if the CharSequence contains the search CharSequence,
1879
     *  false if not or {@code null} string input
1880
     * @since 2.0
1881
     * @since 3.0 Changed signature from contains(String, String) to contains(CharSequence, CharSequence)
1882
     */
1883
    public static boolean contains(final CharSequence seq, final CharSequence searchSeq) {
1884 2 1. contains : negated conditional → KILLED
2. contains : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1885 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1886
        }
1887 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0) >= 0;
1888
    }
1889
1890
    /**
1891
     * <p>Checks if CharSequence contains a search CharSequence irrespective of case,
1892
     * handling {@code null}. Case-insensitivity is defined as by
1893
     * {@link String#equalsIgnoreCase(String)}.
1894
     *
1895
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1896
     *
1897
     * <pre>
1898
     * StringUtils.containsIgnoreCase(null, *) = false
1899
     * StringUtils.containsIgnoreCase(*, null) = false
1900
     * StringUtils.containsIgnoreCase("", "") = true
1901
     * StringUtils.containsIgnoreCase("abc", "") = true
1902
     * StringUtils.containsIgnoreCase("abc", "a") = true
1903
     * StringUtils.containsIgnoreCase("abc", "z") = false
1904
     * StringUtils.containsIgnoreCase("abc", "A") = true
1905
     * StringUtils.containsIgnoreCase("abc", "Z") = false
1906
     * </pre>
1907
     *
1908
     * @param str  the CharSequence to check, may be null
1909
     * @param searchStr  the CharSequence to find, may be null
1910
     * @return true if the CharSequence contains the search CharSequence irrespective of
1911
     * case or false if not or {@code null} string input
1912
     * @since 3.0 Changed signature from containsIgnoreCase(String, String) to containsIgnoreCase(CharSequence, CharSequence)
1913
     */
1914
    public static boolean containsIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1915 2 1. containsIgnoreCase : negated conditional → KILLED
2. containsIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1916 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1917
        }
1918
        final int len = searchStr.length();
1919 1 1. containsIgnoreCase : Replaced integer subtraction with addition → SURVIVED
        final int max = str.length() - len;
1920 3 1. containsIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
2. containsIgnoreCase : changed conditional boundary → KILLED
3. containsIgnoreCase : negated conditional → KILLED
        for (int i = 0; i <= max; i++) {
1921 1 1. containsIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, len)) {
1922 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1923
            }
1924
        }
1925 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1926
    }
1927
1928
    /**
1929
     * Check whether the given CharSequence contains any whitespace characters.
1930
     * @param seq the CharSequence to check (may be {@code null})
1931
     * @return {@code true} if the CharSequence is not empty and
1932
     * contains at least 1 whitespace character
1933
     * @see java.lang.Character#isWhitespace
1934
     * @since 3.0
1935
     */
1936
    // From org.springframework.util.StringUtils, under Apache License 2.0
1937
    public static boolean containsWhitespace(final CharSequence seq) {
1938 1 1. containsWhitespace : negated conditional → KILLED
        if (isEmpty(seq)) {
1939 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1940
        }
1941
        final int strLen = seq.length();
1942 3 1. containsWhitespace : changed conditional boundary → KILLED
2. containsWhitespace : Changed increment from 1 to -1 → KILLED
3. containsWhitespace : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
1943 1 1. containsWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(seq.charAt(i))) {
1944 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1945
            }
1946
        }
1947 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1948
    }
1949
1950
    // IndexOfAny chars
1951
    //-----------------------------------------------------------------------
1952
    /**
1953
     * <p>Search a CharSequence to find the first index of any
1954
     * character in the given set of characters.</p>
1955
     *
1956
     * <p>A {@code null} String will return {@code -1}.
1957
     * A {@code null} or zero length search array will return {@code -1}.</p>
1958
     *
1959
     * <pre>
1960
     * StringUtils.indexOfAny(null, *)                = -1
1961
     * StringUtils.indexOfAny("", *)                  = -1
1962
     * StringUtils.indexOfAny(*, null)                = -1
1963
     * StringUtils.indexOfAny(*, [])                  = -1
1964
     * StringUtils.indexOfAny("zzabyycdxx",['z','a']) = 0
1965
     * StringUtils.indexOfAny("zzabyycdxx",['b','y']) = 3
1966
     * StringUtils.indexOfAny("aba", ['z'])           = -1
1967
     * </pre>
1968
     *
1969
     * @param cs  the CharSequence to check, may be null
1970
     * @param searchChars  the chars to search for, may be null
1971
     * @return the index of any of the chars, -1 if no match or null input
1972
     * @since 2.0
1973
     * @since 3.0 Changed signature from indexOfAny(String, char[]) to indexOfAny(CharSequence, char...)
1974
     */
1975
    public static int indexOfAny(final CharSequence cs, final char... searchChars) {
1976 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
1977 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1978
        }
1979
        final int csLen = cs.length();
1980 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
1981
        final int searchLen = searchChars.length;
1982 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
1983 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
1984
            final char ch = cs.charAt(i);
1985 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
1986 1 1. indexOfAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
1987 5 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : changed conditional boundary → SURVIVED
3. indexOfAny : negated conditional → KILLED
4. indexOfAny : negated conditional → KILLED
5. indexOfAny : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
1988
                        // ch is a supplementary character
1989 3 1. indexOfAny : Replaced integer addition with subtraction → KILLED
2. indexOfAny : Replaced integer addition with subtraction → KILLED
3. indexOfAny : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
1990 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return i;
1991
                        }
1992
                    } else {
1993 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return i;
1994
                    }
1995
                }
1996
            }
1997
        }
1998 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1999
    }
2000
2001
    /**
2002
     * <p>Search a CharSequence to find the first index of any
2003
     * character in the given set of characters.</p>
2004
     *
2005
     * <p>A {@code null} String will return {@code -1}.
2006
     * A {@code null} search string will return {@code -1}.</p>
2007
     *
2008
     * <pre>
2009
     * StringUtils.indexOfAny(null, *)            = -1
2010
     * StringUtils.indexOfAny("", *)              = -1
2011
     * StringUtils.indexOfAny(*, null)            = -1
2012
     * StringUtils.indexOfAny(*, "")              = -1
2013
     * StringUtils.indexOfAny("zzabyycdxx", "za") = 0
2014
     * StringUtils.indexOfAny("zzabyycdxx", "by") = 3
2015
     * StringUtils.indexOfAny("aba","z")          = -1
2016
     * </pre>
2017
     *
2018
     * @param cs  the CharSequence to check, may be null
2019
     * @param searchChars  the chars to search for, may be null
2020
     * @return the index of any of the chars, -1 if no match or null input
2021
     * @since 2.0
2022
     * @since 3.0 Changed signature from indexOfAny(String, String) to indexOfAny(CharSequence, String)
2023
     */
2024
    public static int indexOfAny(final CharSequence cs, final String searchChars) {
2025 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || isEmpty(searchChars)) {
2026 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2027
        }
2028 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAny(cs, searchChars.toCharArray());
2029
    }
2030
2031
    // ContainsAny
2032
    //-----------------------------------------------------------------------
2033
    /**
2034
     * <p>Checks if the CharSequence contains any character in the given
2035
     * set of characters.</p>
2036
     *
2037
     * <p>A {@code null} CharSequence will return {@code false}.
2038
     * A {@code null} or zero length search array will return {@code false}.</p>
2039
     *
2040
     * <pre>
2041
     * StringUtils.containsAny(null, *)                = false
2042
     * StringUtils.containsAny("", *)                  = false
2043
     * StringUtils.containsAny(*, null)                = false
2044
     * StringUtils.containsAny(*, [])                  = false
2045
     * StringUtils.containsAny("zzabyycdxx",['z','a']) = true
2046
     * StringUtils.containsAny("zzabyycdxx",['b','y']) = true
2047
     * StringUtils.containsAny("zzabyycdxx",['z','y']) = true
2048
     * StringUtils.containsAny("aba", ['z'])           = false
2049
     * </pre>
2050
     *
2051
     * @param cs  the CharSequence to check, may be null
2052
     * @param searchChars  the chars to search for, may be null
2053
     * @return the {@code true} if any of the chars are found,
2054
     * {@code false} if no match or null input
2055
     * @since 2.4
2056
     * @since 3.0 Changed signature from containsAny(String, char[]) to containsAny(CharSequence, char...)
2057
     */
2058
    public static boolean containsAny(final CharSequence cs, final char... searchChars) {
2059 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2060 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2061
        }
2062
        final int csLength = cs.length();
2063
        final int searchLength = searchChars.length;
2064 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int csLast = csLength - 1;
2065 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLength - 1;
2066 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (int i = 0; i < csLength; i++) {
2067
            final char ch = cs.charAt(i);
2068 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
            for (int j = 0; j < searchLength; j++) {
2069 1 1. containsAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2070 1 1. containsAny : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2071 1 1. containsAny : negated conditional → KILLED
                        if (j == searchLast) {
2072
                            // missing low surrogate, fine, like String.indexOf(String)
2073 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2074
                        }
2075 5 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Replaced integer addition with subtraction → KILLED
3. containsAny : Replaced integer addition with subtraction → KILLED
4. containsAny : negated conditional → KILLED
5. containsAny : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2076 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2077
                        }
2078
                    } else {
2079
                        // ch is in the Basic Multilingual Plane
2080 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return true;
2081
                    }
2082
                }
2083
            }
2084
        }
2085 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2086
    }
2087
2088
    /**
2089
     * <p>
2090
     * Checks if the CharSequence contains any character in the given set of characters.
2091
     * </p>
2092
     *
2093
     * <p>
2094
     * A {@code null} CharSequence will return {@code false}. A {@code null} search CharSequence will return
2095
     * {@code false}.
2096
     * </p>
2097
     *
2098
     * <pre>
2099
     * StringUtils.containsAny(null, *)               = false
2100
     * StringUtils.containsAny("", *)                 = false
2101
     * StringUtils.containsAny(*, null)               = false
2102
     * StringUtils.containsAny(*, "")                 = false
2103
     * StringUtils.containsAny("zzabyycdxx", "za")    = true
2104
     * StringUtils.containsAny("zzabyycdxx", "by")    = true
2105
     * StringUtils.containsAny("zzabyycdxx", "zy")    = true
2106
     * StringUtils.containsAny("zzabyycdxx", "\tx")   = true
2107
     * StringUtils.containsAny("zzabyycdxx", "$.#yF") = true
2108
     * StringUtils.containsAny("aba","z")             = false
2109
     * </pre>
2110
     *
2111
     * @param cs
2112
     *            the CharSequence to check, may be null
2113
     * @param searchChars
2114
     *            the chars to search for, may be null
2115
     * @return the {@code true} if any of the chars are found, {@code false} if no match or null input
2116
     * @since 2.4
2117
     * @since 3.0 Changed signature from containsAny(String, String) to containsAny(CharSequence, CharSequence)
2118
     */
2119
    public static boolean containsAny(final CharSequence cs, final CharSequence searchChars) {
2120 1 1. containsAny : negated conditional → KILLED
        if (searchChars == null) {
2121 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2122
        }
2123 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsAny(cs, CharSequenceUtils.toCharArray(searchChars));
2124
    }
2125
2126
    /**
2127
     * <p>Checks if the CharSequence contains any of the CharSequences in the given array.</p>
2128
     *
2129
     * <p>
2130
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero
2131
     * length search array will return {@code false}.
2132
     * </p>
2133
     *
2134
     * <pre>
2135
     * StringUtils.containsAny(null, *)            = false
2136
     * StringUtils.containsAny("", *)              = false
2137
     * StringUtils.containsAny(*, null)            = false
2138
     * StringUtils.containsAny(*, [])              = false
2139
     * StringUtils.containsAny("abcd", "ab", null) = true
2140
     * StringUtils.containsAny("abcd", "ab", "cd") = true
2141
     * StringUtils.containsAny("abc", "d", "abc")  = true
2142
     * </pre>
2143
     *
2144
     * 
2145
     * @param cs The CharSequence to check, may be null
2146
     * @param searchCharSequences The array of CharSequences to search for, may be null.
2147
     * Individual CharSequences may be null as well.
2148
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
2149
     * @since 3.4
2150
     */
2151
    public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {
2152 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchCharSequences)) {
2153 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2154
        }
2155 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (final CharSequence searchCharSequence : searchCharSequences) {
2156 1 1. containsAny : negated conditional → KILLED
            if (contains(cs, searchCharSequence)) {
2157 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
2158
            }
2159
        }
2160 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2161
    }
2162
2163
    // IndexOfAnyBut chars
2164
    //-----------------------------------------------------------------------
2165
    /**
2166
     * <p>Searches a CharSequence to find the first index of any
2167
     * character not in the given set of characters.</p>
2168
     *
2169
     * <p>A {@code null} CharSequence will return {@code -1}.
2170
     * A {@code null} or zero length search array will return {@code -1}.</p>
2171
     *
2172
     * <pre>
2173
     * StringUtils.indexOfAnyBut(null, *)                              = -1
2174
     * StringUtils.indexOfAnyBut("", *)                                = -1
2175
     * StringUtils.indexOfAnyBut(*, null)                              = -1
2176
     * StringUtils.indexOfAnyBut(*, [])                                = -1
2177
     * StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'z', 'a'} ) = 3
2178
     * StringUtils.indexOfAnyBut("aba", new char[] {'z'} )             = 0
2179
     * StringUtils.indexOfAnyBut("aba", new char[] {'a', 'b'} )        = -1
2180
2181
     * </pre>
2182
     *
2183
     * @param cs  the CharSequence to check, may be null
2184
     * @param searchChars  the chars to search for, may be null
2185
     * @return the index of any of the chars, -1 if no match or null input
2186
     * @since 2.0
2187
     * @since 3.0 Changed signature from indexOfAnyBut(String, char[]) to indexOfAnyBut(CharSequence, char...)
2188
     */
2189
    public static int indexOfAnyBut(final CharSequence cs, final char... searchChars) {
2190 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2191 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2192
        }
2193
        final int csLen = cs.length();
2194 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2195
        final int searchLen = searchChars.length;
2196 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2197
        outer:
2198 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2199
            final char ch = cs.charAt(i);
2200 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2201 1 1. indexOfAnyBut : negated conditional → KILLED
                if (searchChars[j] == ch) {
2202 5 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : changed conditional boundary → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
5. indexOfAnyBut : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2203 3 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
2. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2204
                            continue outer;
2205
                        }
2206
                    } else {
2207
                        continue outer;
2208
                    }
2209
                }
2210
            }
2211 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
2212
        }
2213 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2214
    }
2215
2216
    /**
2217
     * <p>Search a CharSequence to find the first index of any
2218
     * character not in the given set of characters.</p>
2219
     *
2220
     * <p>A {@code null} CharSequence will return {@code -1}.
2221
     * A {@code null} or empty search string will return {@code -1}.</p>
2222
     *
2223
     * <pre>
2224
     * StringUtils.indexOfAnyBut(null, *)            = -1
2225
     * StringUtils.indexOfAnyBut("", *)              = -1
2226
     * StringUtils.indexOfAnyBut(*, null)            = -1
2227
     * StringUtils.indexOfAnyBut(*, "")              = -1
2228
     * StringUtils.indexOfAnyBut("zzabyycdxx", "za") = 3
2229
     * StringUtils.indexOfAnyBut("zzabyycdxx", "")   = -1
2230
     * StringUtils.indexOfAnyBut("aba","ab")         = -1
2231
     * </pre>
2232
     *
2233
     * @param seq  the CharSequence to check, may be null
2234
     * @param searchChars  the chars to search for, may be null
2235
     * @return the index of any of the chars, -1 if no match or null input
2236
     * @since 2.0
2237
     * @since 3.0 Changed signature from indexOfAnyBut(String, String) to indexOfAnyBut(CharSequence, CharSequence)
2238
     */
2239
    public static int indexOfAnyBut(final CharSequence seq, final CharSequence searchChars) {
2240 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(seq) || isEmpty(searchChars)) {
2241 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2242
        }
2243
        final int strLen = seq.length();
2244 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
2245
            final char ch = seq.charAt(i);
2246 2 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : negated conditional → KILLED
            final boolean chFound = CharSequenceUtils.indexOf(searchChars, ch, 0) >= 0;
2247 4 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : Replaced integer addition with subtraction → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
            if (i + 1 < strLen && Character.isHighSurrogate(ch)) {
2248 1 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
                final char ch2 = seq.charAt(i + 1);
2249 3 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : negated conditional → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                if (chFound && CharSequenceUtils.indexOf(searchChars, ch2, 0) < 0) {
2250 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2251
                }
2252
            } else {
2253 1 1. indexOfAnyBut : negated conditional → KILLED
                if (!chFound) {
2254 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2255
                }
2256
            }
2257
        }
2258 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2259
    }
2260
2261
    // ContainsOnly
2262
    //-----------------------------------------------------------------------
2263
    /**
2264
     * <p>Checks if the CharSequence contains only certain characters.</p>
2265
     *
2266
     * <p>A {@code null} CharSequence will return {@code false}.
2267
     * A {@code null} valid character array will return {@code false}.
2268
     * An empty CharSequence (length()=0) always returns {@code true}.</p>
2269
     *
2270
     * <pre>
2271
     * StringUtils.containsOnly(null, *)       = false
2272
     * StringUtils.containsOnly(*, null)       = false
2273
     * StringUtils.containsOnly("", *)         = true
2274
     * StringUtils.containsOnly("ab", '')      = false
2275
     * StringUtils.containsOnly("abab", 'abc') = true
2276
     * StringUtils.containsOnly("ab1", 'abc')  = false
2277
     * StringUtils.containsOnly("abz", 'abc')  = false
2278
     * </pre>
2279
     *
2280
     * @param cs  the String to check, may be null
2281
     * @param valid  an array of valid chars, may be null
2282
     * @return true if it only contains valid chars and is non-null
2283
     * @since 3.0 Changed signature from containsOnly(String, char[]) to containsOnly(CharSequence, char...)
2284
     */
2285
    public static boolean containsOnly(final CharSequence cs, final char... valid) {
2286
        // All these pre-checks are to maintain API with an older version
2287 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (valid == null || cs == null) {
2288 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2289
        }
2290 1 1. containsOnly : negated conditional → KILLED
        if (cs.length() == 0) {
2291 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2292
        }
2293 1 1. containsOnly : negated conditional → KILLED
        if (valid.length == 0) {
2294 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2295
        }
2296 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAnyBut(cs, valid) == INDEX_NOT_FOUND;
2297
    }
2298
2299
    /**
2300
     * <p>Checks if the CharSequence contains only certain characters.</p>
2301
     *
2302
     * <p>A {@code null} CharSequence will return {@code false}.
2303
     * A {@code null} valid character String will return {@code false}.
2304
     * An empty String (length()=0) always returns {@code true}.</p>
2305
     *
2306
     * <pre>
2307
     * StringUtils.containsOnly(null, *)       = false
2308
     * StringUtils.containsOnly(*, null)       = false
2309
     * StringUtils.containsOnly("", *)         = true
2310
     * StringUtils.containsOnly("ab", "")      = false
2311
     * StringUtils.containsOnly("abab", "abc") = true
2312
     * StringUtils.containsOnly("ab1", "abc")  = false
2313
     * StringUtils.containsOnly("abz", "abc")  = false
2314
     * </pre>
2315
     *
2316
     * @param cs  the CharSequence to check, may be null
2317
     * @param validChars  a String of valid chars, may be null
2318
     * @return true if it only contains valid chars and is non-null
2319
     * @since 2.0
2320
     * @since 3.0 Changed signature from containsOnly(String, String) to containsOnly(CharSequence, String)
2321
     */
2322
    public static boolean containsOnly(final CharSequence cs, final String validChars) {
2323 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (cs == null || validChars == null) {
2324 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2325
        }
2326 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsOnly(cs, validChars.toCharArray());
2327
    }
2328
2329
    // ContainsNone
2330
    //-----------------------------------------------------------------------
2331
    /**
2332
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2333
     *
2334
     * <p>A {@code null} CharSequence will return {@code true}.
2335
     * A {@code null} invalid character array will return {@code true}.
2336
     * An empty CharSequence (length()=0) always returns true.</p>
2337
     *
2338
     * <pre>
2339
     * StringUtils.containsNone(null, *)       = true
2340
     * StringUtils.containsNone(*, null)       = true
2341
     * StringUtils.containsNone("", *)         = true
2342
     * StringUtils.containsNone("ab", '')      = true
2343
     * StringUtils.containsNone("abab", 'xyz') = true
2344
     * StringUtils.containsNone("ab1", 'xyz')  = true
2345
     * StringUtils.containsNone("abz", 'xyz')  = false
2346
     * </pre>
2347
     *
2348
     * @param cs  the CharSequence to check, may be null
2349
     * @param searchChars  an array of invalid chars, may be null
2350
     * @return true if it contains none of the invalid chars, or is null
2351
     * @since 2.0
2352
     * @since 3.0 Changed signature from containsNone(String, char[]) to containsNone(CharSequence, char...)
2353
     */
2354
    public static boolean containsNone(final CharSequence cs, final char... searchChars) {
2355 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || searchChars == null) {
2356 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2357
        }
2358
        final int csLen = cs.length();
2359 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int csLast = csLen - 1;
2360
        final int searchLen = searchChars.length;
2361 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLen - 1;
2362 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2363
            final char ch = cs.charAt(i);
2364 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2365 1 1. containsNone : negated conditional → KILLED
                if (searchChars[j] == ch) {
2366 1 1. containsNone : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2367 1 1. containsNone : negated conditional → KILLED
                        if (j == searchLast) {
2368
                            // missing low surrogate, fine, like String.indexOf(String)
2369 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2370
                        }
2371 5 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Replaced integer addition with subtraction → KILLED
3. containsNone : Replaced integer addition with subtraction → KILLED
4. containsNone : negated conditional → KILLED
5. containsNone : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2372 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2373
                        }
2374
                    } else {
2375
                        // ch is in the Basic Multilingual Plane
2376 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return false;
2377
                    }
2378
                }
2379
            }
2380
        }
2381 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
2382
    }
2383
2384
    /**
2385
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2386
     *
2387
     * <p>A {@code null} CharSequence will return {@code true}.
2388
     * A {@code null} invalid character array will return {@code true}.
2389
     * An empty String ("") always returns true.</p>
2390
     *
2391
     * <pre>
2392
     * StringUtils.containsNone(null, *)       = true
2393
     * StringUtils.containsNone(*, null)       = true
2394
     * StringUtils.containsNone("", *)         = true
2395
     * StringUtils.containsNone("ab", "")      = true
2396
     * StringUtils.containsNone("abab", "xyz") = true
2397
     * StringUtils.containsNone("ab1", "xyz")  = true
2398
     * StringUtils.containsNone("abz", "xyz")  = false
2399
     * </pre>
2400
     *
2401
     * @param cs  the CharSequence to check, may be null
2402
     * @param invalidChars  a String of invalid chars, may be null
2403
     * @return true if it contains none of the invalid chars, or is null
2404
     * @since 2.0
2405
     * @since 3.0 Changed signature from containsNone(String, String) to containsNone(CharSequence, String)
2406
     */
2407
    public static boolean containsNone(final CharSequence cs, final String invalidChars) {
2408 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || invalidChars == null) {
2409 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2410
        }
2411 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsNone(cs, invalidChars.toCharArray());
2412
    }
2413
2414
    // IndexOfAny strings
2415
    //-----------------------------------------------------------------------
2416
    /**
2417
     * <p>Find the first index of any of a set of potential substrings.</p>
2418
     *
2419
     * <p>A {@code null} CharSequence will return {@code -1}.
2420
     * A {@code null} or zero length search array will return {@code -1}.
2421
     * A {@code null} search array entry will be ignored, but a search
2422
     * array containing "" will return {@code 0} if {@code str} is not
2423
     * null. This method uses {@link String#indexOf(String)} if possible.</p>
2424
     *
2425
     * <pre>
2426
     * StringUtils.indexOfAny(null, *)                     = -1
2427
     * StringUtils.indexOfAny(*, null)                     = -1
2428
     * StringUtils.indexOfAny(*, [])                       = -1
2429
     * StringUtils.indexOfAny("zzabyycdxx", ["ab","cd"])   = 2
2430
     * StringUtils.indexOfAny("zzabyycdxx", ["cd","ab"])   = 2
2431
     * StringUtils.indexOfAny("zzabyycdxx", ["mn","op"])   = -1
2432
     * StringUtils.indexOfAny("zzabyycdxx", ["zab","aby"]) = 1
2433
     * StringUtils.indexOfAny("zzabyycdxx", [""])          = 0
2434
     * StringUtils.indexOfAny("", [""])                    = 0
2435
     * StringUtils.indexOfAny("", ["a"])                   = -1
2436
     * </pre>
2437
     *
2438
     * @param str  the CharSequence to check, may be null
2439
     * @param searchStrs  the CharSequences to search for, may be null
2440
     * @return the first index of any of the searchStrs in str, -1 if no match
2441
     * @since 3.0 Changed signature from indexOfAny(String, String[]) to indexOfAny(CharSequence, CharSequence...)
2442
     */
2443
    public static int indexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2444 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2445 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2446
        }
2447
        final int sz = searchStrs.length;
2448
2449
        // String's can't have a MAX_VALUEth index.
2450
        int ret = Integer.MAX_VALUE;
2451
2452
        int tmp = 0;
2453 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
2454
            final CharSequence search = searchStrs[i];
2455 1 1. indexOfAny : negated conditional → KILLED
            if (search == null) {
2456
                continue;
2457
            }
2458
            tmp = CharSequenceUtils.indexOf(str, search, 0);
2459 1 1. indexOfAny : negated conditional → KILLED
            if (tmp == INDEX_NOT_FOUND) {
2460
                continue;
2461
            }
2462
2463 2 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : negated conditional → KILLED
            if (tmp < ret) {
2464
                ret = tmp;
2465
            }
2466
        }
2467
2468 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret == Integer.MAX_VALUE ? INDEX_NOT_FOUND : ret;
2469
    }
2470
2471
    /**
2472
     * <p>Find the latest index of any of a set of potential substrings.</p>
2473
     *
2474
     * <p>A {@code null} CharSequence will return {@code -1}.
2475
     * A {@code null} search array will return {@code -1}.
2476
     * A {@code null} or zero length search array entry will be ignored,
2477
     * but a search array containing "" will return the length of {@code str}
2478
     * if {@code str} is not null. This method uses {@link String#indexOf(String)} if possible</p>
2479
     *
2480
     * <pre>
2481
     * StringUtils.lastIndexOfAny(null, *)                   = -1
2482
     * StringUtils.lastIndexOfAny(*, null)                   = -1
2483
     * StringUtils.lastIndexOfAny(*, [])                     = -1
2484
     * StringUtils.lastIndexOfAny(*, [null])                 = -1
2485
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["ab","cd"]) = 6
2486
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["cd","ab"]) = 6
2487
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2488
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2489
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn",""])   = 10
2490
     * </pre>
2491
     *
2492
     * @param str  the CharSequence to check, may be null
2493
     * @param searchStrs  the CharSequences to search for, may be null
2494
     * @return the last index of any of the CharSequences, -1 if no match
2495
     * @since 3.0 Changed signature from lastIndexOfAny(String, String[]) to lastIndexOfAny(CharSequence, CharSequence)
2496
     */
2497
    public static int lastIndexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2498 2 1. lastIndexOfAny : negated conditional → KILLED
2. lastIndexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2499 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2500
        }
2501
        final int sz = searchStrs.length;
2502
        int ret = INDEX_NOT_FOUND;
2503
        int tmp = 0;
2504 3 1. lastIndexOfAny : changed conditional boundary → KILLED
2. lastIndexOfAny : Changed increment from 1 to -1 → KILLED
3. lastIndexOfAny : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
2505
            final CharSequence search = searchStrs[i];
2506 1 1. lastIndexOfAny : negated conditional → KILLED
            if (search == null) {
2507
                continue;
2508
            }
2509
            tmp = CharSequenceUtils.lastIndexOf(str, search, str.length());
2510 2 1. lastIndexOfAny : changed conditional boundary → SURVIVED
2. lastIndexOfAny : negated conditional → KILLED
            if (tmp > ret) {
2511
                ret = tmp;
2512
            }
2513
        }
2514 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret;
2515
    }
2516
2517
    // Substring
2518
    //-----------------------------------------------------------------------
2519
    /**
2520
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2521
     *
2522
     * <p>A negative start position can be used to start {@code n}
2523
     * characters from the end of the String.</p>
2524
     *
2525
     * <p>A {@code null} String will return {@code null}.
2526
     * An empty ("") String will return "".</p>
2527
     *
2528
     * <pre>
2529
     * StringUtils.substring(null, *)   = null
2530
     * StringUtils.substring("", *)     = ""
2531
     * StringUtils.substring("abc", 0)  = "abc"
2532
     * StringUtils.substring("abc", 2)  = "c"
2533
     * StringUtils.substring("abc", 4)  = ""
2534
     * StringUtils.substring("abc", -2) = "bc"
2535
     * StringUtils.substring("abc", -4) = "abc"
2536
     * </pre>
2537
     *
2538
     * @param str  the String to get the substring from, may be null
2539
     * @param start  the position to start from, negative means
2540
     *  count back from the end of the String by this many characters
2541
     * @return substring from start position, {@code null} if null String input
2542
     */
2543
    public static String substring(final String str, int start) {
2544 1 1. substring : negated conditional → KILLED
        if (str == null) {
2545 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2546
        }
2547
2548
        // handle negatives, which means last n characters
2549 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2550 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2551
        }
2552
2553 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2554
            start = 0;
2555
        }
2556 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > str.length()) {
2557 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2558
        }
2559
2560 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
2561
    }
2562
2563
    /**
2564
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2565
     *
2566
     * <p>A negative start position can be used to start/end {@code n}
2567
     * characters from the end of the String.</p>
2568
     *
2569
     * <p>The returned substring starts with the character in the {@code start}
2570
     * position and ends before the {@code end} position. All position counting is
2571
     * zero-based -- i.e., to start at the beginning of the string use
2572
     * {@code start = 0}. Negative start and end positions can be used to
2573
     * specify offsets relative to the end of the String.</p>
2574
     *
2575
     * <p>If {@code start} is not strictly to the left of {@code end}, ""
2576
     * is returned.</p>
2577
     *
2578
     * <pre>
2579
     * StringUtils.substring(null, *, *)    = null
2580
     * StringUtils.substring("", * ,  *)    = "";
2581
     * StringUtils.substring("abc", 0, 2)   = "ab"
2582
     * StringUtils.substring("abc", 2, 0)   = ""
2583
     * StringUtils.substring("abc", 2, 4)   = "c"
2584
     * StringUtils.substring("abc", 4, 6)   = ""
2585
     * StringUtils.substring("abc", 2, 2)   = ""
2586
     * StringUtils.substring("abc", -2, -1) = "b"
2587
     * StringUtils.substring("abc", -4, 2)  = "ab"
2588
     * </pre>
2589
     *
2590
     * @param str  the String to get the substring from, may be null
2591
     * @param start  the position to start from, negative means
2592
     *  count back from the end of the String by this many characters
2593
     * @param end  the position to end at (exclusive), negative means
2594
     *  count back from the end of the String by this many characters
2595
     * @return substring from start position to end position,
2596
     *  {@code null} if null String input
2597
     */
2598
    public static String substring(final String str, int start, int end) {
2599 1 1. substring : negated conditional → KILLED
        if (str == null) {
2600 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2601
        }
2602
2603
        // handle negatives
2604 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2605 1 1. substring : Replaced integer addition with subtraction → KILLED
            end = str.length() + end; // remember end is negative
2606
        }
2607 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2608 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2609
        }
2610
2611
        // check length next
2612 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end > str.length()) {
2613
            end = str.length();
2614
        }
2615
2616
        // if start is greater than end, return ""
2617 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > end) {
2618 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2619
        }
2620
2621 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2622
            start = 0;
2623
        }
2624 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2625
            end = 0;
2626
        }
2627
2628 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start, end);
2629
    }
2630
2631
    // Left/Right/Mid
2632
    //-----------------------------------------------------------------------
2633
    /**
2634
     * <p>Gets the leftmost {@code len} characters of a String.</p>
2635
     *
2636
     * <p>If {@code len} characters are not available, or the
2637
     * String is {@code null}, the String will be returned without
2638
     * an exception. An empty String is returned if len is negative.</p>
2639
     *
2640
     * <pre>
2641
     * StringUtils.left(null, *)    = null
2642
     * StringUtils.left(*, -ve)     = ""
2643
     * StringUtils.left("", *)      = ""
2644
     * StringUtils.left("abc", 0)   = ""
2645
     * StringUtils.left("abc", 2)   = "ab"
2646
     * StringUtils.left("abc", 4)   = "abc"
2647
     * </pre>
2648
     *
2649
     * @param str  the String to get the leftmost characters from, may be null
2650
     * @param len  the length of the required String
2651
     * @return the leftmost characters, {@code null} if null String input
2652
     */
2653
    public static String left(final String str, final int len) {
2654 1 1. left : negated conditional → KILLED
        if (str == null) {
2655 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2656
        }
2657 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (len < 0) {
2658 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2659
        }
2660 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (str.length() <= len) {
2661 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2662
        }
2663 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, len);
2664
    }
2665
2666
    /**
2667
     * <p>Gets the rightmost {@code len} characters of a String.</p>
2668
     *
2669
     * <p>If {@code len} characters are not available, or the String
2670
     * is {@code null}, the String will be returned without an
2671
     * an exception. An empty String is returned if len is negative.</p>
2672
     *
2673
     * <pre>
2674
     * StringUtils.right(null, *)    = null
2675
     * StringUtils.right(*, -ve)     = ""
2676
     * StringUtils.right("", *)      = ""
2677
     * StringUtils.right("abc", 0)   = ""
2678
     * StringUtils.right("abc", 2)   = "bc"
2679
     * StringUtils.right("abc", 4)   = "abc"
2680
     * </pre>
2681
     *
2682
     * @param str  the String to get the rightmost characters from, may be null
2683
     * @param len  the length of the required String
2684
     * @return the rightmost characters, {@code null} if null String input
2685
     */
2686
    public static String right(final String str, final int len) {
2687 1 1. right : negated conditional → KILLED
        if (str == null) {
2688 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2689
        }
2690 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (len < 0) {
2691 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2692
        }
2693 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (str.length() <= len) {
2694 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2695
        }
2696 2 1. right : Replaced integer subtraction with addition → KILLED
2. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(str.length() - len);
2697
    }
2698
2699
    /**
2700
     * <p>Gets {@code len} characters from the middle of a String.</p>
2701
     *
2702
     * <p>If {@code len} characters are not available, the remainder
2703
     * of the String will be returned without an exception. If the
2704
     * String is {@code null}, {@code null} will be returned.
2705
     * An empty String is returned if len is negative or exceeds the
2706
     * length of {@code str}.</p>
2707
     *
2708
     * <pre>
2709
     * StringUtils.mid(null, *, *)    = null
2710
     * StringUtils.mid(*, *, -ve)     = ""
2711
     * StringUtils.mid("", 0, *)      = ""
2712
     * StringUtils.mid("abc", 0, 2)   = "ab"
2713
     * StringUtils.mid("abc", 0, 4)   = "abc"
2714
     * StringUtils.mid("abc", 2, 4)   = "c"
2715
     * StringUtils.mid("abc", 4, 2)   = ""
2716
     * StringUtils.mid("abc", -2, 2)  = "ab"
2717
     * </pre>
2718
     *
2719
     * @param str  the String to get the characters from, may be null
2720
     * @param pos  the position to start from, negative treated as zero
2721
     * @param len  the length of the required String
2722
     * @return the middle characters, {@code null} if null String input
2723
     */
2724
    public static String mid(final String str, int pos, final int len) {
2725 1 1. mid : negated conditional → KILLED
        if (str == null) {
2726 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2727
        }
2728 4 1. mid : changed conditional boundary → SURVIVED
2. mid : changed conditional boundary → SURVIVED
3. mid : negated conditional → KILLED
4. mid : negated conditional → KILLED
        if (len < 0 || pos > str.length()) {
2729 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2730
        }
2731 2 1. mid : changed conditional boundary → SURVIVED
2. mid : negated conditional → KILLED
        if (pos < 0) {
2732
            pos = 0;
2733
        }
2734 3 1. mid : changed conditional boundary → SURVIVED
2. mid : Replaced integer addition with subtraction → KILLED
3. mid : negated conditional → KILLED
        if (str.length() <= pos + len) {
2735 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(pos);
2736
        }
2737 2 1. mid : Replaced integer addition with subtraction → KILLED
2. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos, pos + len);
2738
    }
2739
2740
    // SubStringAfter/SubStringBefore
2741
    //-----------------------------------------------------------------------
2742
    /**
2743
     * <p>Gets the substring before the first occurrence of a separator.
2744
     * The separator is not returned.</p>
2745
     *
2746
     * <p>A {@code null} string input will return {@code null}.
2747
     * An empty ("") string input will return the empty string.
2748
     * A {@code null} separator will return the input string.</p>
2749
     *
2750
     * <p>If nothing is found, the string input is returned.</p>
2751
     *
2752
     * <pre>
2753
     * StringUtils.substringBefore(null, *)      = null
2754
     * StringUtils.substringBefore("", *)        = ""
2755
     * StringUtils.substringBefore("abc", "a")   = ""
2756
     * StringUtils.substringBefore("abcba", "b") = "a"
2757
     * StringUtils.substringBefore("abc", "c")   = "ab"
2758
     * StringUtils.substringBefore("abc", "d")   = "abc"
2759
     * StringUtils.substringBefore("abc", "")    = ""
2760
     * StringUtils.substringBefore("abc", null)  = "abc"
2761
     * </pre>
2762
     *
2763
     * @param str  the String to get a substring from, may be null
2764
     * @param separator  the String to search for, may be null
2765
     * @return the substring before the first occurrence of the separator,
2766
     *  {@code null} if null String input
2767
     * @since 2.0
2768
     */
2769
    public static String substringBefore(final String str, final String separator) {
2770 2 1. substringBefore : negated conditional → KILLED
2. substringBefore : negated conditional → KILLED
        if (isEmpty(str) || separator == null) {
2771 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2772
        }
2773 1 1. substringBefore : negated conditional → KILLED
        if (separator.isEmpty()) {
2774 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2775
        }
2776
        final int pos = str.indexOf(separator);
2777 1 1. substringBefore : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2778 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2779
        }
2780 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2781
    }
2782
2783
    /**
2784
     * <p>Gets the substring after the first occurrence of a separator.
2785
     * The separator is not returned.</p>
2786
     *
2787
     * <p>A {@code null} string input will return {@code null}.
2788
     * An empty ("") string input will return the empty string.
2789
     * A {@code null} separator will return the empty string if the
2790
     * input string is not {@code null}.</p>
2791
     *
2792
     * <p>If nothing is found, the empty string is returned.</p>
2793
     *
2794
     * <pre>
2795
     * StringUtils.substringAfter(null, *)      = null
2796
     * StringUtils.substringAfter("", *)        = ""
2797
     * StringUtils.substringAfter(*, null)      = ""
2798
     * StringUtils.substringAfter("abc", "a")   = "bc"
2799
     * StringUtils.substringAfter("abcba", "b") = "cba"
2800
     * StringUtils.substringAfter("abc", "c")   = ""
2801
     * StringUtils.substringAfter("abc", "d")   = ""
2802
     * StringUtils.substringAfter("abc", "")    = "abc"
2803
     * </pre>
2804
     *
2805
     * @param str  the String to get a substring from, may be null
2806
     * @param separator  the String to search for, may be null
2807
     * @return the substring after the first occurrence of the separator,
2808
     *  {@code null} if null String input
2809
     * @since 2.0
2810
     */
2811
    public static String substringAfter(final String str, final String separator) {
2812 1 1. substringAfter : negated conditional → KILLED
        if (isEmpty(str)) {
2813 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2814
        }
2815 1 1. substringAfter : negated conditional → KILLED
        if (separator == null) {
2816 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2817
        }
2818
        final int pos = str.indexOf(separator);
2819 1 1. substringAfter : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2820 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2821
        }
2822 2 1. substringAfter : Replaced integer addition with subtraction → KILLED
2. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2823
    }
2824
2825
    /**
2826
     * <p>Gets the substring before the last occurrence of a separator.
2827
     * The separator is not returned.</p>
2828
     *
2829
     * <p>A {@code null} string input will return {@code null}.
2830
     * An empty ("") string input will return the empty string.
2831
     * An empty or {@code null} separator will return the input string.</p>
2832
     *
2833
     * <p>If nothing is found, the string input is returned.</p>
2834
     *
2835
     * <pre>
2836
     * StringUtils.substringBeforeLast(null, *)      = null
2837
     * StringUtils.substringBeforeLast("", *)        = ""
2838
     * StringUtils.substringBeforeLast("abcba", "b") = "abc"
2839
     * StringUtils.substringBeforeLast("abc", "c")   = "ab"
2840
     * StringUtils.substringBeforeLast("a", "a")     = ""
2841
     * StringUtils.substringBeforeLast("a", "z")     = "a"
2842
     * StringUtils.substringBeforeLast("a", null)    = "a"
2843
     * StringUtils.substringBeforeLast("a", "")      = "a"
2844
     * </pre>
2845
     *
2846
     * @param str  the String to get a substring from, may be null
2847
     * @param separator  the String to search for, may be null
2848
     * @return the substring before the last occurrence of the separator,
2849
     *  {@code null} if null String input
2850
     * @since 2.0
2851
     */
2852
    public static String substringBeforeLast(final String str, final String separator) {
2853 2 1. substringBeforeLast : negated conditional → KILLED
2. substringBeforeLast : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(separator)) {
2854 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2855
        }
2856
        final int pos = str.lastIndexOf(separator);
2857 1 1. substringBeforeLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2858 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2859
        }
2860 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2861
    }
2862
2863
    /**
2864
     * <p>Gets the substring after the last occurrence of a separator.
2865
     * The separator is not returned.</p>
2866
     *
2867
     * <p>A {@code null} string input will return {@code null}.
2868
     * An empty ("") string input will return the empty string.
2869
     * An empty or {@code null} separator will return the empty string if
2870
     * the input string is not {@code null}.</p>
2871
     *
2872
     * <p>If nothing is found, the empty string is returned.</p>
2873
     *
2874
     * <pre>
2875
     * StringUtils.substringAfterLast(null, *)      = null
2876
     * StringUtils.substringAfterLast("", *)        = ""
2877
     * StringUtils.substringAfterLast(*, "")        = ""
2878
     * StringUtils.substringAfterLast(*, null)      = ""
2879
     * StringUtils.substringAfterLast("abc", "a")   = "bc"
2880
     * StringUtils.substringAfterLast("abcba", "b") = "a"
2881
     * StringUtils.substringAfterLast("abc", "c")   = ""
2882
     * StringUtils.substringAfterLast("a", "a")     = ""
2883
     * StringUtils.substringAfterLast("a", "z")     = ""
2884
     * </pre>
2885
     *
2886
     * @param str  the String to get a substring from, may be null
2887
     * @param separator  the String to search for, may be null
2888
     * @return the substring after the last occurrence of the separator,
2889
     *  {@code null} if null String input
2890
     * @since 2.0
2891
     */
2892
    public static String substringAfterLast(final String str, final String separator) {
2893 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(str)) {
2894 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2895
        }
2896 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(separator)) {
2897 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2898
        }
2899
        final int pos = str.lastIndexOf(separator);
2900 3 1. substringAfterLast : Replaced integer subtraction with addition → SURVIVED
2. substringAfterLast : negated conditional → KILLED
3. substringAfterLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND || pos == str.length() - separator.length()) {
2901 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2902
        }
2903 2 1. substringAfterLast : Replaced integer addition with subtraction → KILLED
2. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2904
    }
2905
2906
    // Substring between
2907
    //-----------------------------------------------------------------------
2908
    /**
2909
     * <p>Gets the String that is nested in between two instances of the
2910
     * same String.</p>
2911
     *
2912
     * <p>A {@code null} input String returns {@code null}.
2913
     * A {@code null} tag returns {@code null}.</p>
2914
     *
2915
     * <pre>
2916
     * StringUtils.substringBetween(null, *)            = null
2917
     * StringUtils.substringBetween("", "")             = ""
2918
     * StringUtils.substringBetween("", "tag")          = null
2919
     * StringUtils.substringBetween("tagabctag", null)  = null
2920
     * StringUtils.substringBetween("tagabctag", "")    = ""
2921
     * StringUtils.substringBetween("tagabctag", "tag") = "abc"
2922
     * </pre>
2923
     *
2924
     * @param str  the String containing the substring, may be null
2925
     * @param tag  the String before and after the substring, may be null
2926
     * @return the substring, {@code null} if no match
2927
     * @since 2.0
2928
     */
2929
    public static String substringBetween(final String str, final String tag) {
2930 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substringBetween(str, tag, tag);
2931
    }
2932
2933
    /**
2934
     * <p>Gets the String that is nested in between two Strings.
2935
     * Only the first match is returned.</p>
2936
     *
2937
     * <p>A {@code null} input String returns {@code null}.
2938
     * A {@code null} open/close returns {@code null} (no match).
2939
     * An empty ("") open and close returns an empty string.</p>
2940
     *
2941
     * <pre>
2942
     * StringUtils.substringBetween("wx[b]yz", "[", "]") = "b"
2943
     * StringUtils.substringBetween(null, *, *)          = null
2944
     * StringUtils.substringBetween(*, null, *)          = null
2945
     * StringUtils.substringBetween(*, *, null)          = null
2946
     * StringUtils.substringBetween("", "", "")          = ""
2947
     * StringUtils.substringBetween("", "", "]")         = null
2948
     * StringUtils.substringBetween("", "[", "]")        = null
2949
     * StringUtils.substringBetween("yabcz", "", "")     = ""
2950
     * StringUtils.substringBetween("yabcz", "y", "z")   = "abc"
2951
     * StringUtils.substringBetween("yabczyabcz", "y", "z")   = "abc"
2952
     * </pre>
2953
     *
2954
     * @param str  the String containing the substring, may be null
2955
     * @param open  the String before the substring, may be null
2956
     * @param close  the String after the substring, may be null
2957
     * @return the substring, {@code null} if no match
2958
     * @since 2.0
2959
     */
2960
    public static String substringBetween(final String str, final String open, final String close) {
2961 3 1. substringBetween : negated conditional → KILLED
2. substringBetween : negated conditional → KILLED
3. substringBetween : negated conditional → KILLED
        if (str == null || open == null || close == null) {
2962 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2963
        }
2964
        final int start = str.indexOf(open);
2965 1 1. substringBetween : negated conditional → KILLED
        if (start != INDEX_NOT_FOUND) {
2966 1 1. substringBetween : Replaced integer addition with subtraction → KILLED
            final int end = str.indexOf(close, start + open.length());
2967 1 1. substringBetween : negated conditional → KILLED
            if (end != INDEX_NOT_FOUND) {
2968 2 1. substringBetween : Replaced integer addition with subtraction → KILLED
2. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(start + open.length(), end);
2969
            }
2970
        }
2971 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return null;
2972
    }
2973
2974
    /**
2975
     * <p>Searches a String for substrings delimited by a start and end tag,
2976
     * returning all matching substrings in an array.</p>
2977
     *
2978
     * <p>A {@code null} input String returns {@code null}.
2979
     * A {@code null} open/close returns {@code null} (no match).
2980
     * An empty ("") open/close returns {@code null} (no match).</p>
2981
     *
2982
     * <pre>
2983
     * StringUtils.substringsBetween("[a][b][c]", "[", "]") = ["a","b","c"]
2984
     * StringUtils.substringsBetween(null, *, *)            = null
2985
     * StringUtils.substringsBetween(*, null, *)            = null
2986
     * StringUtils.substringsBetween(*, *, null)            = null
2987
     * StringUtils.substringsBetween("", "[", "]")          = []
2988
     * </pre>
2989
     *
2990
     * @param str  the String containing the substrings, null returns null, empty returns empty
2991
     * @param open  the String identifying the start of the substring, empty returns null
2992
     * @param close  the String identifying the end of the substring, empty returns null
2993
     * @return a String Array of substrings, or {@code null} if no match
2994
     * @since 2.3
2995
     */
2996
    public static String[] substringsBetween(final String str, final String open, final String close) {
2997 3 1. substringsBetween : negated conditional → KILLED
2. substringsBetween : negated conditional → KILLED
3. substringsBetween : negated conditional → KILLED
        if (str == null || isEmpty(open) || isEmpty(close)) {
2998 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2999
        }
3000
        final int strLen = str.length();
3001 1 1. substringsBetween : negated conditional → KILLED
        if (strLen == 0) {
3002 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3003
        }
3004
        final int closeLen = close.length();
3005
        final int openLen = open.length();
3006
        final List<String> list = new ArrayList<>();
3007
        int pos = 0;
3008 3 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : Replaced integer subtraction with addition → SURVIVED
3. substringsBetween : negated conditional → KILLED
        while (pos < strLen - closeLen) {
3009
            int start = str.indexOf(open, pos);
3010 2 1. substringsBetween : changed conditional boundary → KILLED
2. substringsBetween : negated conditional → KILLED
            if (start < 0) {
3011
                break;
3012
            }
3013 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            start += openLen;
3014
            final int end = str.indexOf(close, start);
3015 2 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : negated conditional → KILLED
            if (end < 0) {
3016
                break;
3017
            }
3018
            list.add(str.substring(start, end));
3019 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            pos = end + closeLen;
3020
        }
3021 1 1. substringsBetween : negated conditional → KILLED
        if (list.isEmpty()) {
3022 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3023
        }
3024 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String [list.size()]);
3025
    }
3026
3027
    // Nested extraction
3028
    //-----------------------------------------------------------------------
3029
3030
    // Splitting
3031
    //-----------------------------------------------------------------------
3032
    /**
3033
     * <p>Splits the provided text into an array, using whitespace as the
3034
     * separator.
3035
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3036
     *
3037
     * <p>The separator is not included in the returned String array.
3038
     * Adjacent separators are treated as one separator.
3039
     * For more control over the split use the StrTokenizer class.</p>
3040
     *
3041
     * <p>A {@code null} input String returns {@code null}.</p>
3042
     *
3043
     * <pre>
3044
     * StringUtils.split(null)       = null
3045
     * StringUtils.split("")         = []
3046
     * StringUtils.split("abc def")  = ["abc", "def"]
3047
     * StringUtils.split("abc  def") = ["abc", "def"]
3048
     * StringUtils.split(" abc ")    = ["abc"]
3049
     * </pre>
3050
     *
3051
     * @param str  the String to parse, may be null
3052
     * @return an array of parsed Strings, {@code null} if null String input
3053
     */
3054
    public static String[] split(final String str) {
3055 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return split(str, null, -1);
3056
    }
3057
3058
    /**
3059
     * <p>Splits the provided text into an array, separator specified.
3060
     * This is an alternative to using StringTokenizer.</p>
3061
     *
3062
     * <p>The separator is not included in the returned String array.
3063
     * Adjacent separators are treated as one separator.
3064
     * For more control over the split use the StrTokenizer class.</p>
3065
     *
3066
     * <p>A {@code null} input String returns {@code null}.</p>
3067
     *
3068
     * <pre>
3069
     * StringUtils.split(null, *)         = null
3070
     * StringUtils.split("", *)           = []
3071
     * StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
3072
     * StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
3073
     * StringUtils.split("a:b:c", '.')    = ["a:b:c"]
3074
     * StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
3075
     * </pre>
3076
     *
3077
     * @param str  the String to parse, may be null
3078
     * @param separatorChar  the character used as the delimiter
3079
     * @return an array of parsed Strings, {@code null} if null String input
3080
     * @since 2.0
3081
     */
3082
    public static String[] split(final String str, final char separatorChar) {
3083 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, false);
3084
    }
3085
3086
    /**
3087
     * <p>Splits the provided text into an array, separators specified.
3088
     * This is an alternative to using StringTokenizer.</p>
3089
     *
3090
     * <p>The separator is not included in the returned String array.
3091
     * Adjacent separators are treated as one separator.
3092
     * For more control over the split use the StrTokenizer class.</p>
3093
     *
3094
     * <p>A {@code null} input String returns {@code null}.
3095
     * A {@code null} separatorChars splits on whitespace.</p>
3096
     *
3097
     * <pre>
3098
     * StringUtils.split(null, *)         = null
3099
     * StringUtils.split("", *)           = []
3100
     * StringUtils.split("abc def", null) = ["abc", "def"]
3101
     * StringUtils.split("abc def", " ")  = ["abc", "def"]
3102
     * StringUtils.split("abc  def", " ") = ["abc", "def"]
3103
     * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
3104
     * </pre>
3105
     *
3106
     * @param str  the String to parse, may be null
3107
     * @param separatorChars  the characters used as the delimiters,
3108
     *  {@code null} splits on whitespace
3109
     * @return an array of parsed Strings, {@code null} if null String input
3110
     */
3111
    public static String[] split(final String str, final String separatorChars) {
3112 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, false);
3113
    }
3114
3115
    /**
3116
     * <p>Splits the provided text into an array with a maximum length,
3117
     * separators specified.</p>
3118
     *
3119
     * <p>The separator is not included in the returned String array.
3120
     * Adjacent separators are treated as one separator.</p>
3121
     *
3122
     * <p>A {@code null} input String returns {@code null}.
3123
     * A {@code null} separatorChars splits on whitespace.</p>
3124
     *
3125
     * <p>If more than {@code max} delimited substrings are found, the last
3126
     * returned string includes all characters after the first {@code max - 1}
3127
     * returned strings (including separator characters).</p>
3128
     *
3129
     * <pre>
3130
     * StringUtils.split(null, *, *)            = null
3131
     * StringUtils.split("", *, *)              = []
3132
     * StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]
3133
     * StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]
3134
     * StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3135
     * StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3136
     * </pre>
3137
     *
3138
     * @param str  the String to parse, may be null
3139
     * @param separatorChars  the characters used as the delimiters,
3140
     *  {@code null} splits on whitespace
3141
     * @param max  the maximum number of elements to include in the
3142
     *  array. A zero or negative value implies no limit
3143
     * @return an array of parsed Strings, {@code null} if null String input
3144
     */
3145
    public static String[] split(final String str, final String separatorChars, final int max) {
3146 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, false);
3147
    }
3148
3149
    /**
3150
     * <p>Splits the provided text into an array, separator string specified.</p>
3151
     *
3152
     * <p>The separator(s) will not be included in the returned String array.
3153
     * Adjacent separators are treated as one separator.</p>
3154
     *
3155
     * <p>A {@code null} input String returns {@code null}.
3156
     * A {@code null} separator splits on whitespace.</p>
3157
     *
3158
     * <pre>
3159
     * StringUtils.splitByWholeSeparator(null, *)               = null
3160
     * StringUtils.splitByWholeSeparator("", *)                 = []
3161
     * StringUtils.splitByWholeSeparator("ab de fg", null)      = ["ab", "de", "fg"]
3162
     * StringUtils.splitByWholeSeparator("ab   de fg", null)    = ["ab", "de", "fg"]
3163
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3164
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3165
     * </pre>
3166
     *
3167
     * @param str  the String to parse, may be null
3168
     * @param separator  String containing the String to be used as a delimiter,
3169
     *  {@code null} splits on whitespace
3170
     * @return an array of parsed Strings, {@code null} if null String was input
3171
     */
3172
    public static String[] splitByWholeSeparator(final String str, final String separator) {
3173 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker( str, separator, -1, false ) ;
3174
    }
3175
3176
    /**
3177
     * <p>Splits the provided text into an array, separator string specified.
3178
     * Returns a maximum of {@code max} substrings.</p>
3179
     *
3180
     * <p>The separator(s) will not be included in the returned String array.
3181
     * Adjacent separators are treated as one separator.</p>
3182
     *
3183
     * <p>A {@code null} input String returns {@code null}.
3184
     * A {@code null} separator splits on whitespace.</p>
3185
     *
3186
     * <pre>
3187
     * StringUtils.splitByWholeSeparator(null, *, *)               = null
3188
     * StringUtils.splitByWholeSeparator("", *, *)                 = []
3189
     * StringUtils.splitByWholeSeparator("ab de fg", null, 0)      = ["ab", "de", "fg"]
3190
     * StringUtils.splitByWholeSeparator("ab   de fg", null, 0)    = ["ab", "de", "fg"]
3191
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3192
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3193
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3194
     * </pre>
3195
     *
3196
     * @param str  the String to parse, may be null
3197
     * @param separator  String containing the String to be used as a delimiter,
3198
     *  {@code null} splits on whitespace
3199
     * @param max  the maximum number of elements to include in the returned
3200
     *  array. A zero or negative value implies no limit.
3201
     * @return an array of parsed Strings, {@code null} if null String was input
3202
     */
3203
    public static String[] splitByWholeSeparator( final String str, final String separator, final int max) {
3204 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, false);
3205
    }
3206
3207
    /**
3208
     * <p>Splits the provided text into an array, separator string specified. </p>
3209
     *
3210
     * <p>The separator is not included in the returned String array.
3211
     * Adjacent separators are treated as separators for empty tokens.
3212
     * For more control over the split use the StrTokenizer class.</p>
3213
     *
3214
     * <p>A {@code null} input String returns {@code null}.
3215
     * A {@code null} separator splits on whitespace.</p>
3216
     *
3217
     * <pre>
3218
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *)               = null
3219
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *)                 = []
3220
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null)      = ["ab", "de", "fg"]
3221
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null)    = ["ab", "", "", "de", "fg"]
3222
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3223
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3224
     * </pre>
3225
     *
3226
     * @param str  the String to parse, may be null
3227
     * @param separator  String containing the String to be used as a delimiter,
3228
     *  {@code null} splits on whitespace
3229
     * @return an array of parsed Strings, {@code null} if null String was input
3230
     * @since 2.4
3231
     */
3232
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator) {
3233 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return splitByWholeSeparatorWorker(str, separator, -1, true);
3234
    }
3235
3236
    /**
3237
     * <p>Splits the provided text into an array, separator string specified.
3238
     * Returns a maximum of {@code max} substrings.</p>
3239
     *
3240
     * <p>The separator is not included in the returned String array.
3241
     * Adjacent separators are treated as separators for empty tokens.
3242
     * For more control over the split use the StrTokenizer class.</p>
3243
     *
3244
     * <p>A {@code null} input String returns {@code null}.
3245
     * A {@code null} separator splits on whitespace.</p>
3246
     *
3247
     * <pre>
3248
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *, *)               = null
3249
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *, *)                 = []
3250
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 0)      = ["ab", "de", "fg"]
3251
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null, 0)    = ["ab", "", "", "de", "fg"]
3252
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3253
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3254
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3255
     * </pre>
3256
     *
3257
     * @param str  the String to parse, may be null
3258
     * @param separator  String containing the String to be used as a delimiter,
3259
     *  {@code null} splits on whitespace
3260
     * @param max  the maximum number of elements to include in the returned
3261
     *  array. A zero or negative value implies no limit.
3262
     * @return an array of parsed Strings, {@code null} if null String was input
3263
     * @since 2.4
3264
     */
3265
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator, final int max) {
3266 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, true);
3267
    }
3268
3269
    /**
3270
     * Performs the logic for the {@code splitByWholeSeparatorPreserveAllTokens} methods.
3271
     *
3272
     * @param str  the String to parse, may be {@code null}
3273
     * @param separator  String containing the String to be used as a delimiter,
3274
     *  {@code null} splits on whitespace
3275
     * @param max  the maximum number of elements to include in the returned
3276
     *  array. A zero or negative value implies no limit.
3277
     * @param preserveAllTokens if {@code true}, adjacent separators are
3278
     * treated as empty token separators; if {@code false}, adjacent
3279
     * separators are treated as one separator.
3280
     * @return an array of parsed Strings, {@code null} if null String input
3281
     * @since 2.4
3282
     */
3283
    private static String[] splitByWholeSeparatorWorker(
3284
            final String str, final String separator, final int max, final boolean preserveAllTokens) {
3285 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (str == null) {
3286 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3287
        }
3288
3289
        final int len = str.length();
3290
3291 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (len == 0) {
3292 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3293
        }
3294
3295 2 1. splitByWholeSeparatorWorker : negated conditional → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (separator == null || EMPTY.equals(separator)) {
3296
            // Split on whitespace.
3297 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return splitWorker(str, null, max, preserveAllTokens);
3298
        }
3299
3300
        final int separatorLength = separator.length();
3301
3302
        final ArrayList<String> substrings = new ArrayList<>();
3303
        int numberOfSubstrings = 0;
3304
        int beg = 0;
3305
        int end = 0;
3306 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        while (end < len) {
3307
            end = str.indexOf(separator, beg);
3308
3309 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
            if (end > -1) {
3310 2 1. splitByWholeSeparatorWorker : changed conditional boundary → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
                if (end > beg) {
3311 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                    numberOfSubstrings += 1;
3312
3313 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (numberOfSubstrings == max) {
3314
                        end = len;
3315
                        substrings.add(str.substring(beg));
3316
                    } else {
3317
                        // The following is OK, because String.substring( beg, end ) excludes
3318
                        // the character at the position 'end'.
3319
                        substrings.add(str.substring(beg, end));
3320
3321
                        // Set the starting point for the next search.
3322
                        // The following is equivalent to beg = end + (separatorLength - 1) + 1,
3323
                        // which is the right calculation:
3324 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → KILLED
                        beg = end + separatorLength;
3325
                    }
3326
                } else {
3327
                    // We found a consecutive occurrence of the separator, so skip it.
3328 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (preserveAllTokens) {
3329 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                        numberOfSubstrings += 1;
3330 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                        if (numberOfSubstrings == max) {
3331
                            end = len;
3332
                            substrings.add(str.substring(beg));
3333
                        } else {
3334
                            substrings.add(EMPTY);
3335
                        }
3336
                    }
3337 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → TIMED_OUT
                    beg = end + separatorLength;
3338
                }
3339
            } else {
3340
                // String.substring( beg ) goes from 'beg' to the end of the String.
3341
                substrings.add(str.substring(beg));
3342
                end = len;
3343
            }
3344
        }
3345
3346 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substrings.toArray(new String[substrings.size()]);
3347
    }
3348
3349
    // -----------------------------------------------------------------------
3350
    /**
3351
     * <p>Splits the provided text into an array, using whitespace as the
3352
     * separator, preserving all tokens, including empty tokens created by
3353
     * adjacent separators. This is an alternative to using StringTokenizer.
3354
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3355
     *
3356
     * <p>The separator is not included in the returned String array.
3357
     * Adjacent separators are treated as separators for empty tokens.
3358
     * For more control over the split use the StrTokenizer class.</p>
3359
     *
3360
     * <p>A {@code null} input String returns {@code null}.</p>
3361
     *
3362
     * <pre>
3363
     * StringUtils.splitPreserveAllTokens(null)       = null
3364
     * StringUtils.splitPreserveAllTokens("")         = []
3365
     * StringUtils.splitPreserveAllTokens("abc def")  = ["abc", "def"]
3366
     * StringUtils.splitPreserveAllTokens("abc  def") = ["abc", "", "def"]
3367
     * StringUtils.splitPreserveAllTokens(" abc ")    = ["", "abc", ""]
3368
     * </pre>
3369
     *
3370
     * @param str  the String to parse, may be {@code null}
3371
     * @return an array of parsed Strings, {@code null} if null String input
3372
     * @since 2.1
3373
     */
3374
    public static String[] splitPreserveAllTokens(final String str) {
3375 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, null, -1, true);
3376
    }
3377
3378
    /**
3379
     * <p>Splits the provided text into an array, separator specified,
3380
     * preserving all tokens, including empty tokens created by adjacent
3381
     * separators. This is an alternative to using StringTokenizer.</p>
3382
     *
3383
     * <p>The separator is not included in the returned String array.
3384
     * Adjacent separators are treated as separators for empty tokens.
3385
     * For more control over the split use the StrTokenizer class.</p>
3386
     *
3387
     * <p>A {@code null} input String returns {@code null}.</p>
3388
     *
3389
     * <pre>
3390
     * StringUtils.splitPreserveAllTokens(null, *)         = null
3391
     * StringUtils.splitPreserveAllTokens("", *)           = []
3392
     * StringUtils.splitPreserveAllTokens("a.b.c", '.')    = ["a", "b", "c"]
3393
     * StringUtils.splitPreserveAllTokens("a..b.c", '.')   = ["a", "", "b", "c"]
3394
     * StringUtils.splitPreserveAllTokens("a:b:c", '.')    = ["a:b:c"]
3395
     * StringUtils.splitPreserveAllTokens("a\tb\nc", null) = ["a", "b", "c"]
3396
     * StringUtils.splitPreserveAllTokens("a b c", ' ')    = ["a", "b", "c"]
3397
     * StringUtils.splitPreserveAllTokens("a b c ", ' ')   = ["a", "b", "c", ""]
3398
     * StringUtils.splitPreserveAllTokens("a b c  ", ' ')   = ["a", "b", "c", "", ""]
3399
     * StringUtils.splitPreserveAllTokens(" a b c", ' ')   = ["", a", "b", "c"]
3400
     * StringUtils.splitPreserveAllTokens("  a b c", ' ')  = ["", "", a", "b", "c"]
3401
     * StringUtils.splitPreserveAllTokens(" a b c ", ' ')  = ["", a", "b", "c", ""]
3402
     * </pre>
3403
     *
3404
     * @param str  the String to parse, may be {@code null}
3405
     * @param separatorChar  the character used as the delimiter,
3406
     *  {@code null} splits on whitespace
3407
     * @return an array of parsed Strings, {@code null} if null String input
3408
     * @since 2.1
3409
     */
3410
    public static String[] splitPreserveAllTokens(final String str, final char separatorChar) {
3411 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, true);
3412
    }
3413
3414
    /**
3415
     * Performs the logic for the {@code split} and
3416
     * {@code splitPreserveAllTokens} methods that do not return a
3417
     * maximum array length.
3418
     *
3419
     * @param str  the String to parse, may be {@code null}
3420
     * @param separatorChar the separate character
3421
     * @param preserveAllTokens if {@code true}, adjacent separators are
3422
     * treated as empty token separators; if {@code false}, adjacent
3423
     * separators are treated as one separator.
3424
     * @return an array of parsed Strings, {@code null} if null String input
3425
     */
3426
    private static String[] splitWorker(final String str, final char separatorChar, final boolean preserveAllTokens) {
3427
        // Performance tuned for 2.0 (JDK1.4)
3428
3429 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3430 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3431
        }
3432
        final int len = str.length();
3433 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3434 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3435
        }
3436
        final List<String> list = new ArrayList<>();
3437
        int i = 0, start = 0;
3438
        boolean match = false;
3439
        boolean lastMatch = false;
3440 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
        while (i < len) {
3441 1 1. splitWorker : negated conditional → KILLED
            if (str.charAt(i) == separatorChar) {
3442 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                if (match || preserveAllTokens) {
3443
                    list.add(str.substring(start, i));
3444
                    match = false;
3445
                    lastMatch = true;
3446
                }
3447 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                start = ++i;
3448
                continue;
3449
            }
3450
            lastMatch = false;
3451
            match = true;
3452 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
            i++;
3453
        }
3454 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3455
            list.add(str.substring(start, i));
3456
        }
3457 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3458
    }
3459
3460
    /**
3461
     * <p>Splits the provided text into an array, separators specified,
3462
     * preserving all tokens, including empty tokens created by adjacent
3463
     * separators. This is an alternative to using StringTokenizer.</p>
3464
     *
3465
     * <p>The separator is not included in the returned String array.
3466
     * Adjacent separators are treated as separators for empty tokens.
3467
     * For more control over the split use the StrTokenizer class.</p>
3468
     *
3469
     * <p>A {@code null} input String returns {@code null}.
3470
     * A {@code null} separatorChars splits on whitespace.</p>
3471
     *
3472
     * <pre>
3473
     * StringUtils.splitPreserveAllTokens(null, *)           = null
3474
     * StringUtils.splitPreserveAllTokens("", *)             = []
3475
     * StringUtils.splitPreserveAllTokens("abc def", null)   = ["abc", "def"]
3476
     * StringUtils.splitPreserveAllTokens("abc def", " ")    = ["abc", "def"]
3477
     * StringUtils.splitPreserveAllTokens("abc  def", " ")   = ["abc", "", def"]
3478
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":")   = ["ab", "cd", "ef"]
3479
     * StringUtils.splitPreserveAllTokens("ab:cd:ef:", ":")  = ["ab", "cd", "ef", ""]
3480
     * StringUtils.splitPreserveAllTokens("ab:cd:ef::", ":") = ["ab", "cd", "ef", "", ""]
3481
     * StringUtils.splitPreserveAllTokens("ab::cd:ef", ":")  = ["ab", "", cd", "ef"]
3482
     * StringUtils.splitPreserveAllTokens(":cd:ef", ":")     = ["", cd", "ef"]
3483
     * StringUtils.splitPreserveAllTokens("::cd:ef", ":")    = ["", "", cd", "ef"]
3484
     * StringUtils.splitPreserveAllTokens(":cd:ef:", ":")    = ["", cd", "ef", ""]
3485
     * </pre>
3486
     *
3487
     * @param str  the String to parse, may be {@code null}
3488
     * @param separatorChars  the characters used as the delimiters,
3489
     *  {@code null} splits on whitespace
3490
     * @return an array of parsed Strings, {@code null} if null String input
3491
     * @since 2.1
3492
     */
3493
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars) {
3494 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, true);
3495
    }
3496
3497
    /**
3498
     * <p>Splits the provided text into an array with a maximum length,
3499
     * separators specified, preserving all tokens, including empty tokens
3500
     * created by adjacent separators.</p>
3501
     *
3502
     * <p>The separator is not included in the returned String array.
3503
     * Adjacent separators are treated as separators for empty tokens.
3504
     * Adjacent separators are treated as one separator.</p>
3505
     *
3506
     * <p>A {@code null} input String returns {@code null}.
3507
     * A {@code null} separatorChars splits on whitespace.</p>
3508
     *
3509
     * <p>If more than {@code max} delimited substrings are found, the last
3510
     * returned string includes all characters after the first {@code max - 1}
3511
     * returned strings (including separator characters).</p>
3512
     *
3513
     * <pre>
3514
     * StringUtils.splitPreserveAllTokens(null, *, *)            = null
3515
     * StringUtils.splitPreserveAllTokens("", *, *)              = []
3516
     * StringUtils.splitPreserveAllTokens("ab de fg", null, 0)   = ["ab", "cd", "ef"]
3517
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 0) = ["ab", "cd", "ef"]
3518
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3519
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3520
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 2) = ["ab", "  de fg"]
3521
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 3) = ["ab", "", " de fg"]
3522
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 4) = ["ab", "", "", "de fg"]
3523
     * </pre>
3524
     *
3525
     * @param str  the String to parse, may be {@code null}
3526
     * @param separatorChars  the characters used as the delimiters,
3527
     *  {@code null} splits on whitespace
3528
     * @param max  the maximum number of elements to include in the
3529
     *  array. A zero or negative value implies no limit
3530
     * @return an array of parsed Strings, {@code null} if null String input
3531
     * @since 2.1
3532
     */
3533
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) {
3534 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, true);
3535
    }
3536
3537
    /**
3538
     * Performs the logic for the {@code split} and
3539
     * {@code splitPreserveAllTokens} methods that return a maximum array
3540
     * length.
3541
     *
3542
     * @param str  the String to parse, may be {@code null}
3543
     * @param separatorChars the separate character
3544
     * @param max  the maximum number of elements to include in the
3545
     *  array. A zero or negative value implies no limit.
3546
     * @param preserveAllTokens if {@code true}, adjacent separators are
3547
     * treated as empty token separators; if {@code false}, adjacent
3548
     * separators are treated as one separator.
3549
     * @return an array of parsed Strings, {@code null} if null String input
3550
     */
3551
    private static String[] splitWorker(final String str, final String separatorChars, final int max, final boolean preserveAllTokens) {
3552
        // Performance tuned for 2.0 (JDK1.4)
3553
        // Direct code is quicker than StringTokenizer.
3554
        // Also, StringTokenizer uses isSpace() not isWhitespace()
3555
3556 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3557 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3558
        }
3559
        final int len = str.length();
3560 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3561 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3562
        }
3563
        final List<String> list = new ArrayList<>();
3564
        int sizePlus1 = 1;
3565
        int i = 0, start = 0;
3566
        boolean match = false;
3567
        boolean lastMatch = false;
3568 1 1. splitWorker : negated conditional → KILLED
        if (separatorChars == null) {
3569
            // Null separator means use whitespace
3570 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3571 1 1. splitWorker : negated conditional → KILLED
                if (Character.isWhitespace(str.charAt(i))) {
3572 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3573
                        lastMatch = true;
3574 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3575
                            i = len;
3576
                            lastMatch = false;
3577
                        }
3578
                        list.add(str.substring(start, i));
3579
                        match = false;
3580
                    }
3581 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                    start = ++i;
3582
                    continue;
3583
                }
3584
                lastMatch = false;
3585
                match = true;
3586 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3587
            }
3588 1 1. splitWorker : negated conditional → SURVIVED
        } else if (separatorChars.length() == 1) {
3589
            // Optimise 1 character case
3590
            final char sep = separatorChars.charAt(0);
3591 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3592 1 1. splitWorker : negated conditional → KILLED
                if (str.charAt(i) == sep) {
3593 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3594
                        lastMatch = true;
3595 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3596
                            i = len;
3597
                            lastMatch = false;
3598
                        }
3599
                        list.add(str.substring(start, i));
3600
                        match = false;
3601
                    }
3602 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3603
                    continue;
3604
                }
3605
                lastMatch = false;
3606
                match = true;
3607 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3608
            }
3609
        } else {
3610
            // standard case
3611 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3612 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
                if (separatorChars.indexOf(str.charAt(i)) >= 0) {
3613 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3614
                        lastMatch = true;
3615 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3616
                            i = len;
3617
                            lastMatch = false;
3618
                        }
3619
                        list.add(str.substring(start, i));
3620
                        match = false;
3621
                    }
3622 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3623
                    continue;
3624
                }
3625
                lastMatch = false;
3626
                match = true;
3627 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3628
            }
3629
        }
3630 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3631
            list.add(str.substring(start, i));
3632
        }
3633 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3634
    }
3635
3636
    /**
3637
     * <p>Splits a String by Character type as returned by
3638
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3639
     * characters of the same type are returned as complete tokens.
3640
     * <pre>
3641
     * StringUtils.splitByCharacterType(null)         = null
3642
     * StringUtils.splitByCharacterType("")           = []
3643
     * StringUtils.splitByCharacterType("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3644
     * StringUtils.splitByCharacterType("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3645
     * StringUtils.splitByCharacterType("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3646
     * StringUtils.splitByCharacterType("number5")    = ["number", "5"]
3647
     * StringUtils.splitByCharacterType("fooBar")     = ["foo", "B", "ar"]
3648
     * StringUtils.splitByCharacterType("foo200Bar")  = ["foo", "200", "B", "ar"]
3649
     * StringUtils.splitByCharacterType("ASFRules")   = ["ASFR", "ules"]
3650
     * </pre>
3651
     * @param str the String to split, may be {@code null}
3652
     * @return an array of parsed Strings, {@code null} if null String input
3653
     * @since 2.4
3654
     */
3655
    public static String[] splitByCharacterType(final String str) {
3656 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, false);
3657
    }
3658
3659
    /**
3660
     * <p>Splits a String by Character type as returned by
3661
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3662
     * characters of the same type are returned as complete tokens, with the
3663
     * following exception: the character of type
3664
     * {@code Character.UPPERCASE_LETTER}, if any, immediately
3665
     * preceding a token of type {@code Character.LOWERCASE_LETTER}
3666
     * will belong to the following token rather than to the preceding, if any,
3667
     * {@code Character.UPPERCASE_LETTER} token.
3668
     * <pre>
3669
     * StringUtils.splitByCharacterTypeCamelCase(null)         = null
3670
     * StringUtils.splitByCharacterTypeCamelCase("")           = []
3671
     * StringUtils.splitByCharacterTypeCamelCase("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3672
     * StringUtils.splitByCharacterTypeCamelCase("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3673
     * StringUtils.splitByCharacterTypeCamelCase("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3674
     * StringUtils.splitByCharacterTypeCamelCase("number5")    = ["number", "5"]
3675
     * StringUtils.splitByCharacterTypeCamelCase("fooBar")     = ["foo", "Bar"]
3676
     * StringUtils.splitByCharacterTypeCamelCase("foo200Bar")  = ["foo", "200", "Bar"]
3677
     * StringUtils.splitByCharacterTypeCamelCase("ASFRules")   = ["ASF", "Rules"]
3678
     * </pre>
3679
     * @param str the String to split, may be {@code null}
3680
     * @return an array of parsed Strings, {@code null} if null String input
3681
     * @since 2.4
3682
     */
3683
    public static String[] splitByCharacterTypeCamelCase(final String str) {
3684 1 1. splitByCharacterTypeCamelCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, true);
3685
    }
3686
3687
    /**
3688
     * <p>Splits a String by Character type as returned by
3689
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3690
     * characters of the same type are returned as complete tokens, with the
3691
     * following exception: if {@code camelCase} is {@code true},
3692
     * the character of type {@code Character.UPPERCASE_LETTER}, if any,
3693
     * immediately preceding a token of type {@code Character.LOWERCASE_LETTER}
3694
     * will belong to the following token rather than to the preceding, if any,
3695
     * {@code Character.UPPERCASE_LETTER} token.
3696
     * @param str the String to split, may be {@code null}
3697
     * @param camelCase whether to use so-called "camel-case" for letter types
3698
     * @return an array of parsed Strings, {@code null} if null String input
3699
     * @since 2.4
3700
     */
3701
    private static String[] splitByCharacterType(final String str, final boolean camelCase) {
3702 1 1. splitByCharacterType : negated conditional → KILLED
        if (str == null) {
3703 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3704
        }
3705 1 1. splitByCharacterType : negated conditional → KILLED
        if (str.isEmpty()) {
3706 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3707
        }
3708
        final char[] c = str.toCharArray();
3709
        final List<String> list = new ArrayList<>();
3710
        int tokenStart = 0;
3711
        int currentType = Character.getType(c[tokenStart]);
3712 4 1. splitByCharacterType : changed conditional boundary → KILLED
2. splitByCharacterType : Changed increment from 1 to -1 → KILLED
3. splitByCharacterType : Replaced integer addition with subtraction → KILLED
4. splitByCharacterType : negated conditional → KILLED
        for (int pos = tokenStart + 1; pos < c.length; pos++) {
3713
            final int type = Character.getType(c[pos]);
3714 1 1. splitByCharacterType : negated conditional → KILLED
            if (type == currentType) {
3715
                continue;
3716
            }
3717 3 1. splitByCharacterType : negated conditional → KILLED
2. splitByCharacterType : negated conditional → KILLED
3. splitByCharacterType : negated conditional → KILLED
            if (camelCase && type == Character.LOWERCASE_LETTER && currentType == Character.UPPERCASE_LETTER) {
3718 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                final int newTokenStart = pos - 1;
3719 1 1. splitByCharacterType : negated conditional → KILLED
                if (newTokenStart != tokenStart) {
3720 1 1. splitByCharacterType : Replaced integer subtraction with addition → SURVIVED
                    list.add(new String(c, tokenStart, newTokenStart - tokenStart));
3721
                    tokenStart = newTokenStart;
3722
                }
3723
            } else {
3724 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                list.add(new String(c, tokenStart, pos - tokenStart));
3725
                tokenStart = pos;
3726
            }
3727
            currentType = type;
3728
        }
3729 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
        list.add(new String(c, tokenStart, c.length - tokenStart));
3730 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3731
    }
3732
3733
    // Joining
3734
    //-----------------------------------------------------------------------
3735
    /**
3736
     * <p>Joins the elements of the provided array into a single String
3737
     * containing the provided list of elements.</p>
3738
     *
3739
     * <p>No separator is added to the joined String.
3740
     * Null objects or empty strings within the array are represented by
3741
     * empty strings.</p>
3742
     *
3743
     * <pre>
3744
     * StringUtils.join(null)            = null
3745
     * StringUtils.join([])              = ""
3746
     * StringUtils.join([null])          = ""
3747
     * StringUtils.join(["a", "b", "c"]) = "abc"
3748
     * StringUtils.join([null, "", "a"]) = "a"
3749
     * </pre>
3750
     *
3751
     * @param <T> the specific type of values to join together
3752
     * @param elements  the values to join together, may be null
3753
     * @return the joined String, {@code null} if null array input
3754
     * @since 2.0
3755
     * @since 3.0 Changed signature to use varargs
3756
     */
3757
    @SafeVarargs
3758
    public static <T> String join(final T... elements) {
3759 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(elements, null);
3760
    }
3761
3762
    /**
3763
     * <p>Joins the elements of the provided array into a single String
3764
     * containing the provided list of elements.</p>
3765
     *
3766
     * <p>No delimiter is added before or after the list.
3767
     * Null objects or empty strings within the array are represented by
3768
     * empty strings.</p>
3769
     *
3770
     * <pre>
3771
     * StringUtils.join(null, *)               = null
3772
     * StringUtils.join([], *)                 = ""
3773
     * StringUtils.join([null], *)             = ""
3774
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
3775
     * StringUtils.join(["a", "b", "c"], null) = "abc"
3776
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
3777
     * </pre>
3778
     *
3779
     * @param array  the array of values to join together, may be null
3780
     * @param separator  the separator character to use
3781
     * @return the joined String, {@code null} if null array input
3782
     * @since 2.0
3783
     */
3784
    public static String join(final Object[] array, final char separator) {
3785 1 1. join : negated conditional → KILLED
        if (array == null) {
3786 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3787
        }
3788 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3789
    }
3790
3791
    /**
3792
     * <p>
3793
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3794
     * </p>
3795
     *
3796
     * <p>
3797
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3798
     * by empty strings.
3799
     * </p>
3800
     *
3801
     * <pre>
3802
     * StringUtils.join(null, *)               = null
3803
     * StringUtils.join([], *)                 = ""
3804
     * StringUtils.join([null], *)             = ""
3805
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3806
     * StringUtils.join([1, 2, 3], null) = "123"
3807
     * </pre>
3808
     *
3809
     * @param array
3810
     *            the array of values to join together, may be null
3811
     * @param separator
3812
     *            the separator character to use
3813
     * @return the joined String, {@code null} if null array input
3814
     * @since 3.2
3815
     */
3816
    public static String join(final long[] array, final char separator) {
3817 1 1. join : negated conditional → KILLED
        if (array == null) {
3818 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3819
        }
3820 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3821
    }
3822
3823
    /**
3824
     * <p>
3825
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3826
     * </p>
3827
     *
3828
     * <p>
3829
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3830
     * by empty strings.
3831
     * </p>
3832
     *
3833
     * <pre>
3834
     * StringUtils.join(null, *)               = null
3835
     * StringUtils.join([], *)                 = ""
3836
     * StringUtils.join([null], *)             = ""
3837
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3838
     * StringUtils.join([1, 2, 3], null) = "123"
3839
     * </pre>
3840
     *
3841
     * @param array
3842
     *            the array of values to join together, may be null
3843
     * @param separator
3844
     *            the separator character to use
3845
     * @return the joined String, {@code null} if null array input
3846
     * @since 3.2
3847
     */
3848
    public static String join(final int[] array, final char separator) {
3849 1 1. join : negated conditional → KILLED
        if (array == null) {
3850 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3851
        }
3852 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3853
    }
3854
3855
    /**
3856
     * <p>
3857
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3858
     * </p>
3859
     *
3860
     * <p>
3861
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3862
     * by empty strings.
3863
     * </p>
3864
     *
3865
     * <pre>
3866
     * StringUtils.join(null, *)               = null
3867
     * StringUtils.join([], *)                 = ""
3868
     * StringUtils.join([null], *)             = ""
3869
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3870
     * StringUtils.join([1, 2, 3], null) = "123"
3871
     * </pre>
3872
     *
3873
     * @param array
3874
     *            the array of values to join together, may be null
3875
     * @param separator
3876
     *            the separator character to use
3877
     * @return the joined String, {@code null} if null array input
3878
     * @since 3.2
3879
     */
3880
    public static String join(final short[] array, final char separator) {
3881 1 1. join : negated conditional → KILLED
        if (array == null) {
3882 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3883
        }
3884 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3885
    }
3886
3887
    /**
3888
     * <p>
3889
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3890
     * </p>
3891
     *
3892
     * <p>
3893
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3894
     * by empty strings.
3895
     * </p>
3896
     *
3897
     * <pre>
3898
     * StringUtils.join(null, *)               = null
3899
     * StringUtils.join([], *)                 = ""
3900
     * StringUtils.join([null], *)             = ""
3901
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3902
     * StringUtils.join([1, 2, 3], null) = "123"
3903
     * </pre>
3904
     *
3905
     * @param array
3906
     *            the array of values to join together, may be null
3907
     * @param separator
3908
     *            the separator character to use
3909
     * @return the joined String, {@code null} if null array input
3910
     * @since 3.2
3911
     */
3912
    public static String join(final byte[] array, final char separator) {
3913 1 1. join : negated conditional → KILLED
        if (array == null) {
3914 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3915
        }
3916 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3917
    }
3918
3919
    /**
3920
     * <p>
3921
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3922
     * </p>
3923
     *
3924
     * <p>
3925
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3926
     * by empty strings.
3927
     * </p>
3928
     *
3929
     * <pre>
3930
     * StringUtils.join(null, *)               = null
3931
     * StringUtils.join([], *)                 = ""
3932
     * StringUtils.join([null], *)             = ""
3933
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3934
     * StringUtils.join([1, 2, 3], null) = "123"
3935
     * </pre>
3936
     *
3937
     * @param array
3938
     *            the array of values to join together, may be null
3939
     * @param separator
3940
     *            the separator character to use
3941
     * @return the joined String, {@code null} if null array input
3942
     * @since 3.2
3943
     */
3944
    public static String join(final char[] array, final char separator) {
3945 1 1. join : negated conditional → KILLED
        if (array == null) {
3946 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3947
        }
3948 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3949
    }
3950
3951
    /**
3952
     * <p>
3953
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3954
     * </p>
3955
     *
3956
     * <p>
3957
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3958
     * by empty strings.
3959
     * </p>
3960
     *
3961
     * <pre>
3962
     * StringUtils.join(null, *)               = null
3963
     * StringUtils.join([], *)                 = ""
3964
     * StringUtils.join([null], *)             = ""
3965
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3966
     * StringUtils.join([1, 2, 3], null) = "123"
3967
     * </pre>
3968
     *
3969
     * @param array
3970
     *            the array of values to join together, may be null
3971
     * @param separator
3972
     *            the separator character to use
3973
     * @return the joined String, {@code null} if null array input
3974
     * @since 3.2
3975
     */
3976
    public static String join(final float[] array, final char separator) {
3977 1 1. join : negated conditional → KILLED
        if (array == null) {
3978 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3979
        }
3980 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3981
    }
3982
3983
    /**
3984
     * <p>
3985
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3986
     * </p>
3987
     *
3988
     * <p>
3989
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3990
     * by empty strings.
3991
     * </p>
3992
     *
3993
     * <pre>
3994
     * StringUtils.join(null, *)               = null
3995
     * StringUtils.join([], *)                 = ""
3996
     * StringUtils.join([null], *)             = ""
3997
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3998
     * StringUtils.join([1, 2, 3], null) = "123"
3999
     * </pre>
4000
     *
4001
     * @param array
4002
     *            the array of values to join together, may be null
4003
     * @param separator
4004
     *            the separator character to use
4005
     * @return the joined String, {@code null} if null array input
4006
     * @since 3.2
4007
     */
4008
    public static String join(final double[] array, final char separator) {
4009 1 1. join : negated conditional → KILLED
        if (array == null) {
4010 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4011
        }
4012 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4013
    }
4014
4015
4016
    /**
4017
     * <p>Joins the elements of the provided array into a single String
4018
     * containing the provided list of elements.</p>
4019
     *
4020
     * <p>No delimiter is added before or after the list.
4021
     * Null objects or empty strings within the array are represented by
4022
     * empty strings.</p>
4023
     *
4024
     * <pre>
4025
     * StringUtils.join(null, *)               = null
4026
     * StringUtils.join([], *)                 = ""
4027
     * StringUtils.join([null], *)             = ""
4028
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4029
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4030
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4031
     * </pre>
4032
     *
4033
     * @param array  the array of values to join together, may be null
4034
     * @param separator  the separator character to use
4035
     * @param startIndex the first index to start joining from.  It is
4036
     * an error to pass in an end index past the end of the array
4037
     * @param endIndex the index to stop joining from (exclusive). It is
4038
     * an error to pass in an end index past the end of the array
4039
     * @return the joined String, {@code null} if null array input
4040
     * @since 2.0
4041
     */
4042
    public static String join(final Object[] array, final char separator, final int startIndex, final int endIndex) {
4043 1 1. join : negated conditional → KILLED
        if (array == null) {
4044 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return null;
4045
        }
4046 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4047 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4048 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4049
        }
4050 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4051 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4052 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4053
                buf.append(separator);
4054
            }
4055 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4056
                buf.append(array[i]);
4057
            }
4058
        }
4059 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4060
    }
4061
4062
    /**
4063
     * <p>
4064
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4065
     * </p>
4066
     *
4067
     * <p>
4068
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4069
     * by empty strings.
4070
     * </p>
4071
     *
4072
     * <pre>
4073
     * StringUtils.join(null, *)               = null
4074
     * StringUtils.join([], *)                 = ""
4075
     * StringUtils.join([null], *)             = ""
4076
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4077
     * StringUtils.join([1, 2, 3], null) = "123"
4078
     * </pre>
4079
     *
4080
     * @param array
4081
     *            the array of values to join together, may be null
4082
     * @param separator
4083
     *            the separator character to use
4084
     * @param startIndex
4085
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4086
     *            array
4087
     * @param endIndex
4088
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4089
     *            the array
4090
     * @return the joined String, {@code null} if null array input
4091
     * @since 3.2
4092
     */
4093
    public static String join(final long[] array, final char separator, final int startIndex, final int endIndex) {
4094 1 1. join : negated conditional → KILLED
        if (array == null) {
4095 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4096
        }
4097 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4098 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4099 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4100
        }
4101 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4102 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4103 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4104
                buf.append(separator);
4105
            }
4106
            buf.append(array[i]);
4107
        }
4108 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4109
    }
4110
4111
    /**
4112
     * <p>
4113
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4114
     * </p>
4115
     *
4116
     * <p>
4117
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4118
     * by empty strings.
4119
     * </p>
4120
     *
4121
     * <pre>
4122
     * StringUtils.join(null, *)               = null
4123
     * StringUtils.join([], *)                 = ""
4124
     * StringUtils.join([null], *)             = ""
4125
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4126
     * StringUtils.join([1, 2, 3], null) = "123"
4127
     * </pre>
4128
     *
4129
     * @param array
4130
     *            the array of values to join together, may be null
4131
     * @param separator
4132
     *            the separator character to use
4133
     * @param startIndex
4134
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4135
     *            array
4136
     * @param endIndex
4137
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4138
     *            the array
4139
     * @return the joined String, {@code null} if null array input
4140
     * @since 3.2
4141
     */
4142
    public static String join(final int[] array, final char separator, final int startIndex, final int endIndex) {
4143 1 1. join : negated conditional → KILLED
        if (array == null) {
4144 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4145
        }
4146 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4147 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4148 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4149
        }
4150 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4151 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4152 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4153
                buf.append(separator);
4154
            }
4155
            buf.append(array[i]);
4156
        }
4157 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4158
    }
4159
4160
    /**
4161
     * <p>
4162
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4163
     * </p>
4164
     *
4165
     * <p>
4166
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4167
     * by empty strings.
4168
     * </p>
4169
     *
4170
     * <pre>
4171
     * StringUtils.join(null, *)               = null
4172
     * StringUtils.join([], *)                 = ""
4173
     * StringUtils.join([null], *)             = ""
4174
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4175
     * StringUtils.join([1, 2, 3], null) = "123"
4176
     * </pre>
4177
     *
4178
     * @param array
4179
     *            the array of values to join together, may be null
4180
     * @param separator
4181
     *            the separator character to use
4182
     * @param startIndex
4183
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4184
     *            array
4185
     * @param endIndex
4186
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4187
     *            the array
4188
     * @return the joined String, {@code null} if null array input
4189
     * @since 3.2
4190
     */
4191
    public static String join(final byte[] array, final char separator, final int startIndex, final int endIndex) {
4192 1 1. join : negated conditional → KILLED
        if (array == null) {
4193 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4194
        }
4195 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4196 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4197 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4198
        }
4199 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4200 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4201 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4202
                buf.append(separator);
4203
            }
4204
            buf.append(array[i]);
4205
        }
4206 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4207
    }
4208
4209
    /**
4210
     * <p>
4211
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4212
     * </p>
4213
     *
4214
     * <p>
4215
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4216
     * by empty strings.
4217
     * </p>
4218
     *
4219
     * <pre>
4220
     * StringUtils.join(null, *)               = null
4221
     * StringUtils.join([], *)                 = ""
4222
     * StringUtils.join([null], *)             = ""
4223
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4224
     * StringUtils.join([1, 2, 3], null) = "123"
4225
     * </pre>
4226
     *
4227
     * @param array
4228
     *            the array of values to join together, may be null
4229
     * @param separator
4230
     *            the separator character to use
4231
     * @param startIndex
4232
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4233
     *            array
4234
     * @param endIndex
4235
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4236
     *            the array
4237
     * @return the joined String, {@code null} if null array input
4238
     * @since 3.2
4239
     */
4240
    public static String join(final short[] array, final char separator, final int startIndex, final int endIndex) {
4241 1 1. join : negated conditional → KILLED
        if (array == null) {
4242 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4243
        }
4244 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4245 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4246 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4247
        }
4248 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4249 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4250 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4251
                buf.append(separator);
4252
            }
4253
            buf.append(array[i]);
4254
        }
4255 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4256
    }
4257
4258
    /**
4259
     * <p>
4260
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4261
     * </p>
4262
     *
4263
     * <p>
4264
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4265
     * by empty strings.
4266
     * </p>
4267
     *
4268
     * <pre>
4269
     * StringUtils.join(null, *)               = null
4270
     * StringUtils.join([], *)                 = ""
4271
     * StringUtils.join([null], *)             = ""
4272
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4273
     * StringUtils.join([1, 2, 3], null) = "123"
4274
     * </pre>
4275
     *
4276
     * @param array
4277
     *            the array of values to join together, may be null
4278
     * @param separator
4279
     *            the separator character to use
4280
     * @param startIndex
4281
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4282
     *            array
4283
     * @param endIndex
4284
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4285
     *            the array
4286
     * @return the joined String, {@code null} if null array input
4287
     * @since 3.2
4288
     */
4289
    public static String join(final char[] array, final char separator, final int startIndex, final int endIndex) {
4290 1 1. join : negated conditional → KILLED
        if (array == null) {
4291 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4292
        }
4293 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4294 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4295 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4296
        }
4297 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4298 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4299 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4300
                buf.append(separator);
4301
            }
4302
            buf.append(array[i]);
4303
        }
4304 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4305
    }
4306
4307
    /**
4308
     * <p>
4309
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4310
     * </p>
4311
     *
4312
     * <p>
4313
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4314
     * by empty strings.
4315
     * </p>
4316
     *
4317
     * <pre>
4318
     * StringUtils.join(null, *)               = null
4319
     * StringUtils.join([], *)                 = ""
4320
     * StringUtils.join([null], *)             = ""
4321
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4322
     * StringUtils.join([1, 2, 3], null) = "123"
4323
     * </pre>
4324
     *
4325
     * @param array
4326
     *            the array of values to join together, may be null
4327
     * @param separator
4328
     *            the separator character to use
4329
     * @param startIndex
4330
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4331
     *            array
4332
     * @param endIndex
4333
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4334
     *            the array
4335
     * @return the joined String, {@code null} if null array input
4336
     * @since 3.2
4337
     */
4338
    public static String join(final double[] array, final char separator, final int startIndex, final int endIndex) {
4339 1 1. join : negated conditional → KILLED
        if (array == null) {
4340 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4341
        }
4342 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4343 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4344 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4345
        }
4346 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4347 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4348 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4349
                buf.append(separator);
4350
            }
4351
            buf.append(array[i]);
4352
        }
4353 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4354
    }
4355
4356
    /**
4357
     * <p>
4358
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4359
     * </p>
4360
     *
4361
     * <p>
4362
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4363
     * by empty strings.
4364
     * </p>
4365
     *
4366
     * <pre>
4367
     * StringUtils.join(null, *)               = null
4368
     * StringUtils.join([], *)                 = ""
4369
     * StringUtils.join([null], *)             = ""
4370
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4371
     * StringUtils.join([1, 2, 3], null) = "123"
4372
     * </pre>
4373
     *
4374
     * @param array
4375
     *            the array of values to join together, may be null
4376
     * @param separator
4377
     *            the separator character to use
4378
     * @param startIndex
4379
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4380
     *            array
4381
     * @param endIndex
4382
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4383
     *            the array
4384
     * @return the joined String, {@code null} if null array input
4385
     * @since 3.2
4386
     */
4387
    public static String join(final float[] array, final char separator, final int startIndex, final int endIndex) {
4388 1 1. join : negated conditional → KILLED
        if (array == null) {
4389 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4390
        }
4391 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4392 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4393 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4394
        }
4395 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4396 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4397 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4398
                buf.append(separator);
4399
            }
4400
            buf.append(array[i]);
4401
        }
4402 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4403
    }
4404
4405
4406
    /**
4407
     * <p>Joins the elements of the provided array into a single String
4408
     * containing the provided list of elements.</p>
4409
     *
4410
     * <p>No delimiter is added before or after the list.
4411
     * A {@code null} separator is the same as an empty String ("").
4412
     * Null objects or empty strings within the array are represented by
4413
     * empty strings.</p>
4414
     *
4415
     * <pre>
4416
     * StringUtils.join(null, *)                = null
4417
     * StringUtils.join([], *)                  = ""
4418
     * StringUtils.join([null], *)              = ""
4419
     * StringUtils.join(["a", "b", "c"], "--")  = "a--b--c"
4420
     * StringUtils.join(["a", "b", "c"], null)  = "abc"
4421
     * StringUtils.join(["a", "b", "c"], "")    = "abc"
4422
     * StringUtils.join([null, "", "a"], ',')   = ",,a"
4423
     * </pre>
4424
     *
4425
     * @param array  the array of values to join together, may be null
4426
     * @param separator  the separator character to use, null treated as ""
4427
     * @return the joined String, {@code null} if null array input
4428
     */
4429
    public static String join(final Object[] array, final String separator) {
4430 1 1. join : negated conditional → KILLED
        if (array == null) {
4431 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4432
        }
4433 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4434
    }
4435
4436
    /**
4437
     * <p>Joins the elements of the provided array into a single String
4438
     * containing the provided list of elements.</p>
4439
     *
4440
     * <p>No delimiter is added before or after the list.
4441
     * A {@code null} separator is the same as an empty String ("").
4442
     * Null objects or empty strings within the array are represented by
4443
     * empty strings.</p>
4444
     *
4445
     * <pre>
4446
     * StringUtils.join(null, *, *, *)                = null
4447
     * StringUtils.join([], *, *, *)                  = ""
4448
     * StringUtils.join([null], *, *, *)              = ""
4449
     * StringUtils.join(["a", "b", "c"], "--", 0, 3)  = "a--b--c"
4450
     * StringUtils.join(["a", "b", "c"], "--", 1, 3)  = "b--c"
4451
     * StringUtils.join(["a", "b", "c"], "--", 2, 3)  = "c"
4452
     * StringUtils.join(["a", "b", "c"], "--", 2, 2)  = ""
4453
     * StringUtils.join(["a", "b", "c"], null, 0, 3)  = "abc"
4454
     * StringUtils.join(["a", "b", "c"], "", 0, 3)    = "abc"
4455
     * StringUtils.join([null, "", "a"], ',', 0, 3)   = ",,a"
4456
     * </pre>
4457
     *
4458
     * @param array  the array of values to join together, may be null
4459
     * @param separator  the separator character to use, null treated as ""
4460
     * @param startIndex the first index to start joining from.
4461
     * @param endIndex the index to stop joining from (exclusive).
4462
     * @return the joined String, {@code null} if null array input; or the empty string
4463
     * if {@code endIndex - startIndex <= 0}. The number of joined entries is given by
4464
     * {@code endIndex - startIndex}
4465
     * @throws ArrayIndexOutOfBoundsException ife<br>
4466
     * {@code startIndex < 0} or <br>
4467
     * {@code startIndex >= array.length()} or <br>
4468
     * {@code endIndex < 0} or <br>
4469
     * {@code endIndex > array.length()}
4470
     */
4471
    public static String join(final Object[] array, String separator, final int startIndex, final int endIndex) {
4472 1 1. join : negated conditional → KILLED
        if (array == null) {
4473 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return null;
4474
        }
4475 1 1. join : negated conditional → KILLED
        if (separator == null) {
4476
            separator = EMPTY;
4477
        }
4478
4479
        // endIndex - startIndex > 0:   Len = NofStrings *(len(firstString) + len(separator))
4480
        //           (Assuming that all Strings are roughly equally long)
4481 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4482 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4483 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4484
        }
4485
4486 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4487
4488 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4489 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4490
                buf.append(separator);
4491
            }
4492 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4493
                buf.append(array[i]);
4494
            }
4495
        }
4496 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4497
    }
4498
4499
    /**
4500
     * <p>Joins the elements of the provided {@code Iterator} into
4501
     * a single String containing the provided elements.</p>
4502
     *
4503
     * <p>No delimiter is added before or after the list. Null objects or empty
4504
     * strings within the iteration are represented by empty strings.</p>
4505
     *
4506
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4507
     *
4508
     * @param iterator  the {@code Iterator} of values to join together, may be null
4509
     * @param separator  the separator character to use
4510
     * @return the joined String, {@code null} if null iterator input
4511
     * @since 2.0
4512
     */
4513
    public static String join(final Iterator<?> iterator, final char separator) {
4514
4515
        // handle null, zero and one elements before building a buffer
4516 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4517 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4518
        }
4519 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4520 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4521
        }
4522
        final Object first = iterator.next();
4523 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4524
            final String result = Objects.toString(first, "");
4525 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4526
        }
4527
4528
        // two or more elements
4529
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4530 1 1. join : negated conditional → KILLED
        if (first != null) {
4531
            buf.append(first);
4532
        }
4533
4534 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4535
            buf.append(separator);
4536
            final Object obj = iterator.next();
4537 1 1. join : negated conditional → KILLED
            if (obj != null) {
4538
                buf.append(obj);
4539
            }
4540
        }
4541
4542 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4543
    }
4544
4545
    /**
4546
     * <p>Joins the elements of the provided {@code Iterator} into
4547
     * a single String containing the provided elements.</p>
4548
     *
4549
     * <p>No delimiter is added before or after the list.
4550
     * A {@code null} separator is the same as an empty String ("").</p>
4551
     *
4552
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4553
     *
4554
     * @param iterator  the {@code Iterator} of values to join together, may be null
4555
     * @param separator  the separator character to use, null treated as ""
4556
     * @return the joined String, {@code null} if null iterator input
4557
     */
4558
    public static String join(final Iterator<?> iterator, final String separator) {
4559
4560
        // handle null, zero and one elements before building a buffer
4561 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4562 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4563
        }
4564 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4565 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4566
        }
4567
        final Object first = iterator.next();
4568 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4569
            final String result = Objects.toString(first, "");
4570 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4571
        }
4572
4573
        // two or more elements
4574
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4575 1 1. join : negated conditional → KILLED
        if (first != null) {
4576
            buf.append(first);
4577
        }
4578
4579 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4580 1 1. join : negated conditional → KILLED
            if (separator != null) {
4581
                buf.append(separator);
4582
            }
4583
            final Object obj = iterator.next();
4584 1 1. join : negated conditional → KILLED
            if (obj != null) {
4585
                buf.append(obj);
4586
            }
4587
        }
4588 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4589
    }
4590
4591
    /**
4592
     * <p>Joins the elements of the provided {@code Iterable} into
4593
     * a single String containing the provided elements.</p>
4594
     *
4595
     * <p>No delimiter is added before or after the list. Null objects or empty
4596
     * strings within the iteration are represented by empty strings.</p>
4597
     *
4598
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4599
     *
4600
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4601
     * @param separator  the separator character to use
4602
     * @return the joined String, {@code null} if null iterator input
4603
     * @since 2.3
4604
     */
4605
    public static String join(final Iterable<?> iterable, final char separator) {
4606 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4607 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4608
        }
4609 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4610
    }
4611
4612
    /**
4613
     * <p>Joins the elements of the provided {@code Iterable} into
4614
     * a single String containing the provided elements.</p>
4615
     *
4616
     * <p>No delimiter is added before or after the list.
4617
     * A {@code null} separator is the same as an empty String ("").</p>
4618
     *
4619
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4620
     *
4621
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4622
     * @param separator  the separator character to use, null treated as ""
4623
     * @return the joined String, {@code null} if null iterator input
4624
     * @since 2.3
4625
     */
4626
    public static String join(final Iterable<?> iterable, final String separator) {
4627 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4628 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4629
        }
4630 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4631
    }
4632
4633
    /**
4634
     * <p>Joins the elements of the provided varargs into a
4635
     * single String containing the provided elements.</p>
4636
     *
4637
     * <p>No delimiter is added before or after the list.
4638
     * {@code null} elements and separator are treated as empty Strings ("").</p>
4639
     *
4640
     * <pre>
4641
     * StringUtils.joinWith(",", {"a", "b"})        = "a,b"
4642
     * StringUtils.joinWith(",", {"a", "b",""})     = "a,b,"
4643
     * StringUtils.joinWith(",", {"a", null, "b"})  = "a,,b"
4644
     * StringUtils.joinWith(null, {"a", "b"})       = "ab"
4645
     * </pre>
4646
     *
4647
     * @param separator the separator character to use, null treated as ""
4648
     * @param objects the varargs providing the values to join together. {@code null} elements are treated as ""
4649
     * @return the joined String.
4650
     * @throws java.lang.IllegalArgumentException if a null varargs is provided
4651
     * @since 3.5
4652
     */
4653
    public static String joinWith(final String separator, final Object... objects) {
4654 1 1. joinWith : negated conditional → KILLED
        if (objects == null) {
4655
            throw new IllegalArgumentException("Object varargs must not be null");
4656
        }
4657
4658
        final String sanitizedSeparator = defaultString(separator, StringUtils.EMPTY);
4659
4660
        final StringBuilder result = new StringBuilder();
4661
4662
        final Iterator<Object> iterator = Arrays.asList(objects).iterator();
4663 1 1. joinWith : negated conditional → KILLED
        while (iterator.hasNext()) {
4664
            final String value = Objects.toString(iterator.next(), "");
4665
            result.append(value);
4666
4667 1 1. joinWith : negated conditional → KILLED
            if (iterator.hasNext()) {
4668
                result.append(sanitizedSeparator);
4669
            }
4670
        }
4671
4672 1 1. joinWith : mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result.toString();
4673
    }
4674
4675
    // Delete
4676
    //-----------------------------------------------------------------------
4677
    /**
4678
     * <p>Deletes all whitespaces from a String as defined by
4679
     * {@link Character#isWhitespace(char)}.</p>
4680
     *
4681
     * <pre>
4682
     * StringUtils.deleteWhitespace(null)         = null
4683
     * StringUtils.deleteWhitespace("")           = ""
4684
     * StringUtils.deleteWhitespace("abc")        = "abc"
4685
     * StringUtils.deleteWhitespace("   ab  c  ") = "abc"
4686
     * </pre>
4687
     *
4688
     * @param str  the String to delete whitespace from, may be null
4689
     * @return the String without whitespaces, {@code null} if null String input
4690
     */
4691
    public static String deleteWhitespace(final String str) {
4692 1 1. deleteWhitespace : negated conditional → KILLED
        if (isEmpty(str)) {
4693 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4694
        }
4695
        final int sz = str.length();
4696
        final char[] chs = new char[sz];
4697
        int count = 0;
4698 3 1. deleteWhitespace : changed conditional boundary → KILLED
2. deleteWhitespace : Changed increment from 1 to -1 → KILLED
3. deleteWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
4699 1 1. deleteWhitespace : negated conditional → KILLED
            if (!Character.isWhitespace(str.charAt(i))) {
4700 1 1. deleteWhitespace : Changed increment from 1 to -1 → KILLED
                chs[count++] = str.charAt(i);
4701
            }
4702
        }
4703 1 1. deleteWhitespace : negated conditional → KILLED
        if (count == sz) {
4704 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4705
        }
4706 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chs, 0, count);
4707
    }
4708
4709
    // Remove
4710
    //-----------------------------------------------------------------------
4711
    /**
4712
     * <p>Removes a substring only if it is at the beginning of a source string,
4713
     * otherwise returns the source string.</p>
4714
     *
4715
     * <p>A {@code null} source string will return {@code null}.
4716
     * An empty ("") source string will return the empty string.
4717
     * A {@code null} search string will return the source string.</p>
4718
     *
4719
     * <pre>
4720
     * StringUtils.removeStart(null, *)      = null
4721
     * StringUtils.removeStart("", *)        = ""
4722
     * StringUtils.removeStart(*, null)      = *
4723
     * StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
4724
     * StringUtils.removeStart("domain.com", "www.")       = "domain.com"
4725
     * StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
4726
     * StringUtils.removeStart("abc", "")    = "abc"
4727
     * </pre>
4728
     *
4729
     * @param str  the source String to search, may be null
4730
     * @param remove  the String to search for and remove, may be null
4731
     * @return the substring with the string removed if found,
4732
     *  {@code null} if null String input
4733
     * @since 2.1
4734
     */
4735
    public static String removeStart(final String str, final String remove) {
4736 2 1. removeStart : negated conditional → KILLED
2. removeStart : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4737 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4738
        }
4739 1 1. removeStart : negated conditional → KILLED
        if (str.startsWith(remove)){
4740 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4741
        }
4742 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4743
    }
4744
4745
    /**
4746
     * <p>Case insensitive removal of a substring if it is at the beginning of a source string,
4747
     * otherwise returns the source string.</p>
4748
     *
4749
     * <p>A {@code null} source string will return {@code null}.
4750
     * An empty ("") source string will return the empty string.
4751
     * A {@code null} search string will return the source string.</p>
4752
     *
4753
     * <pre>
4754
     * StringUtils.removeStartIgnoreCase(null, *)      = null
4755
     * StringUtils.removeStartIgnoreCase("", *)        = ""
4756
     * StringUtils.removeStartIgnoreCase(*, null)      = *
4757
     * StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = "domain.com"
4758
     * StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = "domain.com"
4759
     * StringUtils.removeStartIgnoreCase("domain.com", "www.")       = "domain.com"
4760
     * StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4761
     * StringUtils.removeStartIgnoreCase("abc", "")    = "abc"
4762
     * </pre>
4763
     *
4764
     * @param str  the source String to search, may be null
4765
     * @param remove  the String to search for (case insensitive) and remove, may be null
4766
     * @return the substring with the string removed if found,
4767
     *  {@code null} if null String input
4768
     * @since 2.4
4769
     */
4770
    public static String removeStartIgnoreCase(final String str, final String remove) {
4771 2 1. removeStartIgnoreCase : negated conditional → KILLED
2. removeStartIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4772 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4773
        }
4774 1 1. removeStartIgnoreCase : negated conditional → KILLED
        if (startsWithIgnoreCase(str, remove)) {
4775 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4776
        }
4777 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4778
    }
4779
4780
    /**
4781
     * <p>Removes a substring only if it is at the end of a source string,
4782
     * otherwise returns the source string.</p>
4783
     *
4784
     * <p>A {@code null} source string will return {@code null}.
4785
     * An empty ("") source string will return the empty string.
4786
     * A {@code null} search string will return the source string.</p>
4787
     *
4788
     * <pre>
4789
     * StringUtils.removeEnd(null, *)      = null
4790
     * StringUtils.removeEnd("", *)        = ""
4791
     * StringUtils.removeEnd(*, null)      = *
4792
     * StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
4793
     * StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
4794
     * StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
4795
     * StringUtils.removeEnd("abc", "")    = "abc"
4796
     * </pre>
4797
     *
4798
     * @param str  the source String to search, may be null
4799
     * @param remove  the String to search for and remove, may be null
4800
     * @return the substring with the string removed if found,
4801
     *  {@code null} if null String input
4802
     * @since 2.1
4803
     */
4804
    public static String removeEnd(final String str, final String remove) {
4805 2 1. removeEnd : negated conditional → KILLED
2. removeEnd : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4806 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4807
        }
4808 1 1. removeEnd : negated conditional → KILLED
        if (str.endsWith(remove)) {
4809 2 1. removeEnd : Replaced integer subtraction with addition → KILLED
2. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4810
        }
4811 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4812
    }
4813
4814
    /**
4815
     * <p>Case insensitive removal of a substring if it is at the end of a source string,
4816
     * otherwise returns the source string.</p>
4817
     *
4818
     * <p>A {@code null} source string will return {@code null}.
4819
     * An empty ("") source string will return the empty string.
4820
     * A {@code null} search string will return the source string.</p>
4821
     *
4822
     * <pre>
4823
     * StringUtils.removeEndIgnoreCase(null, *)      = null
4824
     * StringUtils.removeEndIgnoreCase("", *)        = ""
4825
     * StringUtils.removeEndIgnoreCase(*, null)      = *
4826
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = "www.domain.com"
4827
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = "www.domain"
4828
     * StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4829
     * StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
4830
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
4831
     * StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")
4832
     * </pre>
4833
     *
4834
     * @param str  the source String to search, may be null
4835
     * @param remove  the String to search for (case insensitive) and remove, may be null
4836
     * @return the substring with the string removed if found,
4837
     *  {@code null} if null String input
4838
     * @since 2.4
4839
     */
4840
    public static String removeEndIgnoreCase(final String str, final String remove) {
4841 2 1. removeEndIgnoreCase : negated conditional → KILLED
2. removeEndIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4842 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4843
        }
4844 1 1. removeEndIgnoreCase : negated conditional → KILLED
        if (endsWithIgnoreCase(str, remove)) {
4845 2 1. removeEndIgnoreCase : Replaced integer subtraction with addition → KILLED
2. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4846
        }
4847 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4848
    }
4849
4850
    /**
4851
     * <p>Removes all occurrences of a substring from within the source string.</p>
4852
     *
4853
     * <p>A {@code null} source string will return {@code null}.
4854
     * An empty ("") source string will return the empty string.
4855
     * A {@code null} remove string will return the source string.
4856
     * An empty ("") remove string will return the source string.</p>
4857
     *
4858
     * <pre>
4859
     * StringUtils.remove(null, *)        = null
4860
     * StringUtils.remove("", *)          = ""
4861
     * StringUtils.remove(*, null)        = *
4862
     * StringUtils.remove(*, "")          = *
4863
     * StringUtils.remove("queued", "ue") = "qd"
4864
     * StringUtils.remove("queued", "zz") = "queued"
4865
     * </pre>
4866
     *
4867
     * @param str  the source String to search, may be null
4868
     * @param remove  the String to search for and remove, may be null
4869
     * @return the substring with the string removed if found,
4870
     *  {@code null} if null String input
4871
     * @since 2.1
4872
     */
4873
    public static String remove(final String str, final String remove) {
4874 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4875 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4876
        }
4877 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(str, remove, EMPTY, -1);
4878
    }
4879
4880
    /**
4881
     * <p>
4882
     * Case insensitive removal of all occurrences of a substring from within
4883
     * the source string.
4884
     * </p>
4885
     *
4886
     * <p>
4887
     * A {@code null} source string will return {@code null}. An empty ("")
4888
     * source string will return the empty string. A {@code null} remove string
4889
     * will return the source string. An empty ("") remove string will return
4890
     * the source string.
4891
     * </p>
4892
     *
4893
     * <pre>
4894
     * StringUtils.removeIgnoreCase(null, *)        = null
4895
     * StringUtils.removeIgnoreCase("", *)          = ""
4896
     * StringUtils.removeIgnoreCase(*, null)        = *
4897
     * StringUtils.removeIgnoreCase(*, "")          = *
4898
     * StringUtils.removeIgnoreCase("queued", "ue") = "qd"
4899
     * StringUtils.removeIgnoreCase("queued", "zz") = "queued"
4900
     * StringUtils.removeIgnoreCase("quEUed", "UE") = "qd"
4901
     * StringUtils.removeIgnoreCase("queued", "zZ") = "queued"
4902
     * </pre>
4903
     *
4904
     * @param str
4905
     *            the source String to search, may be null
4906
     * @param remove
4907
     *            the String to search for (case insensitive) and remove, may be
4908
     *            null
4909
     * @return the substring with the string removed if found, {@code null} if
4910
     *         null String input
4911
     * @since 3.5
4912
     */
4913
    public static String removeIgnoreCase(final String str, final String remove) {
4914 2 1. removeIgnoreCase : negated conditional → KILLED
2. removeIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4915 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4916
        }
4917 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(str, remove, EMPTY, -1);
4918
    }
4919
4920
    /**
4921
     * <p>Removes all occurrences of a character from within the source string.</p>
4922
     *
4923
     * <p>A {@code null} source string will return {@code null}.
4924
     * An empty ("") source string will return the empty string.</p>
4925
     *
4926
     * <pre>
4927
     * StringUtils.remove(null, *)       = null
4928
     * StringUtils.remove("", *)         = ""
4929
     * StringUtils.remove("queued", 'u') = "qeed"
4930
     * StringUtils.remove("queued", 'z') = "queued"
4931
     * </pre>
4932
     *
4933
     * @param str  the source String to search, may be null
4934
     * @param remove  the char to search for and remove, may be null
4935
     * @return the substring with the char removed if found,
4936
     *  {@code null} if null String input
4937
     * @since 2.1
4938
     */
4939
    public static String remove(final String str, final char remove) {
4940 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || str.indexOf(remove) == INDEX_NOT_FOUND) {
4941 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4942
        }
4943
        final char[] chars = str.toCharArray();
4944
        int pos = 0;
4945 3 1. remove : changed conditional boundary → KILLED
2. remove : Changed increment from 1 to -1 → KILLED
3. remove : negated conditional → KILLED
        for (int i = 0; i < chars.length; i++) {
4946 1 1. remove : negated conditional → KILLED
            if (chars[i] != remove) {
4947 1 1. remove : Changed increment from 1 to -1 → KILLED
                chars[pos++] = chars[i];
4948
            }
4949
        }
4950 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chars, 0, pos);
4951
    }
4952
4953
    /**
4954
     * <p>Removes each substring of the text String that matches the given regular expression.</p>
4955
     *
4956
     * This method is a {@code null} safe equivalent to:
4957
     * <ul>
4958
     *  <li>{@code text.replaceAll(regex, StringUtils.EMPTY)}</li>
4959
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(StringUtils.EMPTY)}</li>
4960
     * </ul>
4961
     *
4962
     * <p>A {@code null} reference passed to this method is a no-op.</p>
4963
     *
4964
     * <p>Unlike in the {@link #removePattern(String, String)} method, the {@link Pattern#DOTALL} option
4965
     * is NOT automatically added.
4966
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
4967
     * DOTALL is also know as single-line mode in Perl.</p>
4968
     *
4969
     * <pre>
4970
     * StringUtils.removeAll(null, *)      = null
4971
     * StringUtils.removeAll("any", null)  = "any"
4972
     * StringUtils.removeAll("any", "")    = "any"
4973
     * StringUtils.removeAll("any", ".*")  = ""
4974
     * StringUtils.removeAll("any", ".+")  = ""
4975
     * StringUtils.removeAll("abc", ".?")  = ""
4976
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\nB"
4977
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
4978
     * StringUtils.removeAll("ABCabc123abc", "[a-z]")     = "ABC123"
4979
     * </pre>
4980
     *
4981
     * @param text  text to remove from, may be null
4982
     * @param regex  the regular expression to which this string is to be matched
4983
     * @return  the text with any removes processed,
4984
     *              {@code null} if null String input
4985
     *
4986
     * @throws  java.util.regex.PatternSyntaxException
4987
     *              if the regular expression's syntax is invalid
4988
     *
4989
     * @see #replaceAll(String, String, String)
4990
     * @see #removePattern(String, String)
4991
     * @see String#replaceAll(String, String)
4992
     * @see java.util.regex.Pattern
4993
     * @see java.util.regex.Pattern#DOTALL
4994
     * @since 3.5
4995
     */
4996
    public static String removeAll(final String text, final String regex) {
4997 1 1. removeAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceAll(text, regex, StringUtils.EMPTY);
4998
    }
4999
5000
    /**
5001
     * <p>Removes the first substring of the text string that matches the given regular expression.</p>
5002
     *
5003
     * This method is a {@code null} safe equivalent to:
5004
     * <ul>
5005
     *  <li>{@code text.replaceFirst(regex, StringUtils.EMPTY)}</li>
5006
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(StringUtils.EMPTY)}</li>
5007
     * </ul>
5008
     *
5009
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5010
     *
5011
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5012
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5013
     * DOTALL is also know as single-line mode in Perl.</p>
5014
     *
5015
     * <pre>
5016
     * StringUtils.removeFirst(null, *)      = null
5017
     * StringUtils.removeFirst("any", null)  = "any"
5018
     * StringUtils.removeFirst("any", "")    = "any"
5019
     * StringUtils.removeFirst("any", ".*")  = ""
5020
     * StringUtils.removeFirst("any", ".+")  = ""
5021
     * StringUtils.removeFirst("abc", ".?")  = "bc"
5022
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\n&lt;__&gt;B"
5023
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
5024
     * StringUtils.removeFirst("ABCabc123", "[a-z]")          = "ABCbc123"
5025
     * StringUtils.removeFirst("ABCabc123abc", "[a-z]+")      = "ABC123abc"
5026
     * </pre>
5027
     *
5028
     * @param text  text to remove from, may be null
5029
     * @param regex  the regular expression to which this string is to be matched
5030
     * @return  the text with the first replacement processed,
5031
     *              {@code null} if null String input
5032
     *
5033
     * @throws  java.util.regex.PatternSyntaxException
5034
     *              if the regular expression's syntax is invalid
5035
     *
5036
     * @see #replaceFirst(String, String, String)
5037
     * @see String#replaceFirst(String, String)
5038
     * @see java.util.regex.Pattern
5039
     * @see java.util.regex.Pattern#DOTALL
5040
     * @since 3.5
5041
     */
5042
    public static String removeFirst(final String text, final String regex) {
5043 1 1. removeFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceFirst(text, regex, StringUtils.EMPTY);
5044
    }
5045
5046
    // Replacing
5047
    //-----------------------------------------------------------------------
5048
    /**
5049
     * <p>Replaces a String with another String inside a larger String, once.</p>
5050
     *
5051
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5052
     *
5053
     * <pre>
5054
     * StringUtils.replaceOnce(null, *, *)        = null
5055
     * StringUtils.replaceOnce("", *, *)          = ""
5056
     * StringUtils.replaceOnce("any", null, *)    = "any"
5057
     * StringUtils.replaceOnce("any", *, null)    = "any"
5058
     * StringUtils.replaceOnce("any", "", *)      = "any"
5059
     * StringUtils.replaceOnce("aba", "a", null)  = "aba"
5060
     * StringUtils.replaceOnce("aba", "a", "")    = "ba"
5061
     * StringUtils.replaceOnce("aba", "a", "z")   = "zba"
5062
     * </pre>
5063
     *
5064
     * @see #replace(String text, String searchString, String replacement, int max)
5065
     * @param text  text to search and replace in, may be null
5066
     * @param searchString  the String to search for, may be null
5067
     * @param replacement  the String to replace with, may be null
5068
     * @return the text with any replacements processed,
5069
     *  {@code null} if null String input
5070
     */
5071
    public static String replaceOnce(final String text, final String searchString, final String replacement) {
5072 1 1. replaceOnce : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, 1);
5073
    }
5074
5075
    /**
5076
     * <p>Case insensitively replaces a String with another String inside a larger String, once.</p>
5077
     *
5078
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5079
     *
5080
     * <pre>
5081
     * StringUtils.replaceOnceIgnoreCase(null, *, *)        = null
5082
     * StringUtils.replaceOnceIgnoreCase("", *, *)          = ""
5083
     * StringUtils.replaceOnceIgnoreCase("any", null, *)    = "any"
5084
     * StringUtils.replaceOnceIgnoreCase("any", *, null)    = "any"
5085
     * StringUtils.replaceOnceIgnoreCase("any", "", *)      = "any"
5086
     * StringUtils.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
5087
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
5088
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
5089
     * StringUtils.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
5090
     * </pre>
5091
     *
5092
     * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5093
     * @param text  text to search and replace in, may be null
5094
     * @param searchString  the String to search for (case insensitive), may be null
5095
     * @param replacement  the String to replace with, may be null
5096
     * @return the text with any replacements processed,
5097
     *  {@code null} if null String input
5098
     * @since 3.5
5099
     */
5100
    public static String replaceOnceIgnoreCase(final String text, final String searchString, final String replacement) {
5101 1 1. replaceOnceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(text, searchString, replacement, 1);
5102
    }
5103
5104
    /**
5105
     * <p>Replaces each substring of the source String that matches the given regular expression with the given
5106
     * replacement using the {@link Pattern#DOTALL} option. DOTALL is also know as single-line mode in Perl.</p>
5107
     *
5108
     * This call is a {@code null} safe equivalent to:
5109
     * <ul>
5110
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, replacement)}</li>
5111
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement)}</li>
5112
     * </ul>
5113
     *
5114
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5115
     *
5116
     * <pre>
5117
     * StringUtils.replacePattern(null, *, *)       = null
5118
     * StringUtils.replacePattern("any", null, *)   = "any"
5119
     * StringUtils.replacePattern("any", *, null)   = "any"
5120
     * StringUtils.replacePattern("", "", "zzz")    = "zzz"
5121
     * StringUtils.replacePattern("", ".*", "zzz")  = "zzz"
5122
     * StringUtils.replacePattern("", ".+", "zzz")  = ""
5123
     * StringUtils.replacePattern("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")       = "z"
5124
     * StringUtils.replacePattern("ABCabc123", "[a-z]", "_")       = "ABC___123"
5125
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5126
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5127
     * StringUtils.replacePattern("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5128
     * </pre>
5129
     *
5130
     * @param source
5131
     *            the source string
5132
     * @param regex
5133
     *            the regular expression to which this string is to be matched
5134
     * @param replacement
5135
     *            the string to be substituted for each match
5136
     * @return The resulting {@code String}
5137
     * @see #replaceAll(String, String, String)
5138
     * @see String#replaceAll(String, String)
5139
     * @see Pattern#DOTALL
5140
     * @since 3.2
5141
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5142
     */
5143
    public static String replacePattern(final String source, final String regex, final String replacement) {
5144 3 1. replacePattern : negated conditional → KILLED
2. replacePattern : negated conditional → KILLED
3. replacePattern : negated conditional → KILLED
        if (source == null || regex == null || replacement == null) {
5145 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return source;
5146
        }
5147 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement);
5148
    }
5149
5150
    /**
5151
     * <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.
5152
     * </p>
5153
     *
5154
     * This call is a {@code null} safe equivalent to:
5155
     * <ul>
5156
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, StringUtils.EMPTY)}</li>
5157
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(StringUtils.EMPTY)}</li>
5158
     * </ul>
5159
     *
5160
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5161
     *
5162
     * <pre>
5163
     * StringUtils.removePattern(null, *)       = null
5164
     * StringUtils.removePattern("any", null)   = "any"
5165
     * StringUtils.removePattern("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")  = "AB"
5166
     * StringUtils.removePattern("ABCabc123", "[a-z]")    = "ABC123"
5167
     * </pre>
5168
     *
5169
     * @param source
5170
     *            the source string
5171
     * @param regex
5172
     *            the regular expression to which this string is to be matched
5173
     * @return The resulting {@code String}
5174
     * @see #replacePattern(String, String, String)
5175
     * @see String#replaceAll(String, String)
5176
     * @see Pattern#DOTALL
5177
     * @since 3.2
5178
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5179
     */
5180
    public static String removePattern(final String source, final String regex) {
5181 1 1. removePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replacePattern(source, regex, StringUtils.EMPTY);
5182
    }
5183
5184
    /**
5185
     * <p>Replaces each substring of the text String that matches the given regular expression
5186
     * with the given replacement.</p>
5187
     *
5188
     * This method is a {@code null} safe equivalent to:
5189
     * <ul>
5190
     *  <li>{@code text.replaceAll(regex, replacement)}</li>
5191
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(replacement)}</li>
5192
     * </ul>
5193
     *
5194
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5195
     *
5196
     * <p>Unlike in the {@link #replacePattern(String, String, String)} method, the {@link Pattern#DOTALL} option
5197
     * is NOT automatically added.
5198
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5199
     * DOTALL is also know as single-line mode in Perl.</p>
5200
     *
5201
     * <pre>
5202
     * StringUtils.replaceAll(null, *, *)       = null
5203
     * StringUtils.replaceAll("any", null, *)   = "any"
5204
     * StringUtils.replaceAll("any", *, null)   = "any"
5205
     * StringUtils.replaceAll("", "", "zzz")    = "zzz"
5206
     * StringUtils.replaceAll("", ".*", "zzz")  = "zzz"
5207
     * StringUtils.replaceAll("", ".+", "zzz")  = ""
5208
     * StringUtils.replaceAll("abc", "", "ZZ")  = "ZZaZZbZZcZZ"
5209
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\nz"
5210
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5211
     * StringUtils.replaceAll("ABCabc123", "[a-z]", "_")       = "ABC___123"
5212
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5213
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5214
     * StringUtils.replaceAll("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5215
     * </pre>
5216
     *
5217
     * @param text  text to search and replace in, may be null
5218
     * @param regex  the regular expression to which this string is to be matched
5219
     * @param replacement  the string to be substituted for each match
5220
     * @return  the text with any replacements processed,
5221
     *              {@code null} if null String input
5222
     *
5223
     * @throws  java.util.regex.PatternSyntaxException
5224
     *              if the regular expression's syntax is invalid
5225
     *
5226
     * @see #replacePattern(String, String, String)
5227
     * @see String#replaceAll(String, String)
5228
     * @see java.util.regex.Pattern
5229
     * @see java.util.regex.Pattern#DOTALL
5230
     * @since 3.5
5231
     */
5232
    public static String replaceAll(final String text, final String regex, final String replacement) {
5233 3 1. replaceAll : negated conditional → KILLED
2. replaceAll : negated conditional → KILLED
3. replaceAll : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5234 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5235
        }
5236 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceAll(regex, replacement);
5237
    }
5238
5239
    /**
5240
     * <p>Replaces the first substring of the text string that matches the given regular expression
5241
     * with the given replacement.</p>
5242
     *
5243
     * This method is a {@code null} safe equivalent to:
5244
     * <ul>
5245
     *  <li>{@code text.replaceFirst(regex, replacement)}</li>
5246
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(replacement)}</li>
5247
     * </ul>
5248
     *
5249
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5250
     *
5251
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5252
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5253
     * DOTALL is also know as single-line mode in Perl.</p>
5254
     *
5255
     * <pre>
5256
     * StringUtils.replaceFirst(null, *, *)       = null
5257
     * StringUtils.replaceFirst("any", null, *)   = "any"
5258
     * StringUtils.replaceFirst("any", *, null)   = "any"
5259
     * StringUtils.replaceFirst("", "", "zzz")    = "zzz"
5260
     * StringUtils.replaceFirst("", ".*", "zzz")  = "zzz"
5261
     * StringUtils.replaceFirst("", ".+", "zzz")  = ""
5262
     * StringUtils.replaceFirst("abc", "", "ZZ")  = "ZZabc"
5263
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\n&lt;__&gt;"
5264
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5265
     * StringUtils.replaceFirst("ABCabc123", "[a-z]", "_")          = "ABC_bc123"
5266
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "_")  = "ABC_123abc"
5267
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "")   = "ABC123abc"
5268
     * StringUtils.replaceFirst("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum  dolor   sit"
5269
     * </pre>
5270
     *
5271
     * @param text  text to search and replace in, may be null
5272
     * @param regex  the regular expression to which this string is to be matched
5273
     * @param replacement  the string to be substituted for the first match
5274
     * @return  the text with the first replacement processed,
5275
     *              {@code null} if null String input
5276
     *
5277
     * @throws  java.util.regex.PatternSyntaxException
5278
     *              if the regular expression's syntax is invalid
5279
     *
5280
     * @see String#replaceFirst(String, String)
5281
     * @see java.util.regex.Pattern
5282
     * @see java.util.regex.Pattern#DOTALL
5283
     * @since 3.5
5284
     */
5285
    public static String replaceFirst(final String text, final String regex, final String replacement) {
5286 3 1. replaceFirst : negated conditional → KILLED
2. replaceFirst : negated conditional → KILLED
3. replaceFirst : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5287 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5288
        }
5289 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceFirst(regex, replacement);
5290
    }
5291
5292
    /**
5293
     * <p>Replaces all occurrences of a String within another String.</p>
5294
     *
5295
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5296
     *
5297
     * <pre>
5298
     * StringUtils.replace(null, *, *)        = null
5299
     * StringUtils.replace("", *, *)          = ""
5300
     * StringUtils.replace("any", null, *)    = "any"
5301
     * StringUtils.replace("any", *, null)    = "any"
5302
     * StringUtils.replace("any", "", *)      = "any"
5303
     * StringUtils.replace("aba", "a", null)  = "aba"
5304
     * StringUtils.replace("aba", "a", "")    = "b"
5305
     * StringUtils.replace("aba", "a", "z")   = "zbz"
5306
     * </pre>
5307
     *
5308
     * @see #replace(String text, String searchString, String replacement, int max)
5309
     * @param text  text to search and replace in, may be null
5310
     * @param searchString  the String to search for, may be null
5311
     * @param replacement  the String to replace it with, may be null
5312
     * @return the text with any replacements processed,
5313
     *  {@code null} if null String input
5314
     */
5315
    public static String replace(final String text, final String searchString, final String replacement) {
5316 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, -1);
5317
    }
5318
5319
    /**
5320
    * <p>Case insensitively replaces all occurrences of a String within another String.</p>
5321
    *
5322
    * <p>A {@code null} reference passed to this method is a no-op.</p>
5323
    *
5324
    * <pre>
5325
    * StringUtils.replaceIgnoreCase(null, *, *)        = null
5326
    * StringUtils.replaceIgnoreCase("", *, *)          = ""
5327
    * StringUtils.replaceIgnoreCase("any", null, *)    = "any"
5328
    * StringUtils.replaceIgnoreCase("any", *, null)    = "any"
5329
    * StringUtils.replaceIgnoreCase("any", "", *)      = "any"
5330
    * StringUtils.replaceIgnoreCase("aba", "a", null)  = "aba"
5331
    * StringUtils.replaceIgnoreCase("abA", "A", "")    = "b"
5332
    * StringUtils.replaceIgnoreCase("aba", "A", "z")   = "zbz"
5333
    * </pre>
5334
    *
5335
    * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5336
    * @param text  text to search and replace in, may be null
5337
    * @param searchString  the String to search for (case insensitive), may be null
5338
    * @param replacement  the String to replace it with, may be null
5339
    * @return the text with any replacements processed,
5340
    *  {@code null} if null String input
5341
    * @since 3.5
5342
    */
5343
   public static String replaceIgnoreCase(final String text, final String searchString, final String replacement) {
5344 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
       return replaceIgnoreCase(text, searchString, replacement, -1);
5345
   }
5346
5347
    /**
5348
     * <p>Replaces a String with another String inside a larger String,
5349
     * for the first {@code max} values of the search String.</p>
5350
     *
5351
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5352
     *
5353
     * <pre>
5354
     * StringUtils.replace(null, *, *, *)         = null
5355
     * StringUtils.replace("", *, *, *)           = ""
5356
     * StringUtils.replace("any", null, *, *)     = "any"
5357
     * StringUtils.replace("any", *, null, *)     = "any"
5358
     * StringUtils.replace("any", "", *, *)       = "any"
5359
     * StringUtils.replace("any", *, *, 0)        = "any"
5360
     * StringUtils.replace("abaa", "a", null, -1) = "abaa"
5361
     * StringUtils.replace("abaa", "a", "", -1)   = "b"
5362
     * StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
5363
     * StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
5364
     * StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
5365
     * StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
5366
     * </pre>
5367
     *
5368
     * @param text  text to search and replace in, may be null
5369
     * @param searchString  the String to search for, may be null
5370
     * @param replacement  the String to replace it with, may be null
5371
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5372
     * @return the text with any replacements processed,
5373
     *  {@code null} if null String input
5374
     */
5375
    public static String replace(final String text, final String searchString, final String replacement, final int max) {
5376 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, false);
5377
    }
5378
5379
    /**
5380
     * <p>Replaces a String with another String inside a larger String,
5381
     * for the first {@code max} values of the search String, 
5382
     * case sensitively/insensisitively based on {@code ignoreCase} value.</p>
5383
     *
5384
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5385
     *
5386
     * <pre>
5387
     * StringUtils.replace(null, *, *, *, false)         = null
5388
     * StringUtils.replace("", *, *, *, false)           = ""
5389
     * StringUtils.replace("any", null, *, *, false)     = "any"
5390
     * StringUtils.replace("any", *, null, *, false)     = "any"
5391
     * StringUtils.replace("any", "", *, *, false)       = "any"
5392
     * StringUtils.replace("any", *, *, 0, false)        = "any"
5393
     * StringUtils.replace("abaa", "a", null, -1, false) = "abaa"
5394
     * StringUtils.replace("abaa", "a", "", -1, false)   = "b"
5395
     * StringUtils.replace("abaa", "a", "z", 0, false)   = "abaa"
5396
     * StringUtils.replace("abaa", "A", "z", 1, false)   = "abaa"
5397
     * StringUtils.replace("abaa", "A", "z", 1, true)   = "zbaa"
5398
     * StringUtils.replace("abAa", "a", "z", 2, true)   = "zbza"
5399
     * StringUtils.replace("abAa", "a", "z", -1, true)  = "zbzz"
5400
     * </pre>
5401
     *
5402
     * @param text  text to search and replace in, may be null
5403
     * @param searchString  the String to search for (case insensitive), may be null
5404
     * @param replacement  the String to replace it with, may be null
5405
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5406
     * @param ignoreCase if true replace is case insensitive, otherwise case sensitive
5407
     * @return the text with any replacements processed,
5408
     *  {@code null} if null String input
5409
     */
5410
     private static String replace(final String text, String searchString, final String replacement, int max, final boolean ignoreCase) {
5411 4 1. replace : negated conditional → KILLED
2. replace : negated conditional → KILLED
3. replace : negated conditional → KILLED
4. replace : negated conditional → KILLED
         if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
5412 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5413
         }
5414
         String searchText = text;
5415 1 1. replace : negated conditional → KILLED
         if (ignoreCase) {
5416
             searchText = text.toLowerCase();
5417
             searchString = searchString.toLowerCase();
5418
         }
5419
         int start = 0;
5420
         int end = searchText.indexOf(searchString, start);
5421 1 1. replace : negated conditional → KILLED
         if (end == INDEX_NOT_FOUND) {
5422 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5423
         }
5424
         final int replLength = searchString.length();
5425 1 1. replace : Replaced integer subtraction with addition → SURVIVED
         int increase = replacement.length() - replLength;
5426 2 1. replace : changed conditional boundary → SURVIVED
2. replace : negated conditional → KILLED
         increase = increase < 0 ? 0 : increase;
5427 5 1. replace : changed conditional boundary → SURVIVED
2. replace : changed conditional boundary → SURVIVED
3. replace : Replaced integer multiplication with division → SURVIVED
4. replace : negated conditional → SURVIVED
5. replace : negated conditional → SURVIVED
         increase *= max < 0 ? 16 : max > 64 ? 64 : max;
5428 1 1. replace : Replaced integer addition with subtraction → KILLED
         final StringBuilder buf = new StringBuilder(text.length() + increase);
5429 1 1. replace : negated conditional → KILLED
         while (end != INDEX_NOT_FOUND) {
5430
             buf.append(text.substring(start, end)).append(replacement);
5431 1 1. replace : Replaced integer addition with subtraction → KILLED
             start = end + replLength;
5432 2 1. replace : Changed increment from -1 to 1 → KILLED
2. replace : negated conditional → KILLED
             if (--max == 0) {
5433
                 break;
5434
             }
5435
             end = searchText.indexOf(searchString, start);
5436
         }
5437
         buf.append(text.substring(start));
5438 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
         return buf.toString();
5439
     }
5440
5441
    /**
5442
     * <p>Case insensitively replaces a String with another String inside a larger String,
5443
     * for the first {@code max} values of the search String.</p>
5444
     *
5445
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5446
     *
5447
     * <pre>
5448
     * StringUtils.replaceIgnoreCase(null, *, *, *)         = null
5449
     * StringUtils.replaceIgnoreCase("", *, *, *)           = ""
5450
     * StringUtils.replaceIgnoreCase("any", null, *, *)     = "any"
5451
     * StringUtils.replaceIgnoreCase("any", *, null, *)     = "any"
5452
     * StringUtils.replaceIgnoreCase("any", "", *, *)       = "any"
5453
     * StringUtils.replaceIgnoreCase("any", *, *, 0)        = "any"
5454
     * StringUtils.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
5455
     * StringUtils.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
5456
     * StringUtils.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
5457
     * StringUtils.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
5458
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
5459
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
5460
     * </pre>
5461
     *
5462
     * @param text  text to search and replace in, may be null
5463
     * @param searchString  the String to search for (case insensitive), may be null
5464
     * @param replacement  the String to replace it with, may be null
5465
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5466
     * @return the text with any replacements processed,
5467
     *  {@code null} if null String input
5468
     * @since 3.5
5469
     */
5470
    public static String replaceIgnoreCase(final String text, final String searchString, final String replacement, final int max) {
5471 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, true);
5472
    }
5473
5474
    /**
5475
     * <p>
5476
     * Replaces all occurrences of Strings within another String.
5477
     * </p>
5478
     *
5479
     * <p>
5480
     * A {@code null} reference passed to this method is a no-op, or if
5481
     * any "search string" or "string to replace" is null, that replace will be
5482
     * ignored. This will not repeat. For repeating replaces, call the
5483
     * overloaded method.
5484
     * </p>
5485
     *
5486
     * <pre>
5487
     *  StringUtils.replaceEach(null, *, *)        = null
5488
     *  StringUtils.replaceEach("", *, *)          = ""
5489
     *  StringUtils.replaceEach("aba", null, null) = "aba"
5490
     *  StringUtils.replaceEach("aba", new String[0], null) = "aba"
5491
     *  StringUtils.replaceEach("aba", null, new String[0]) = "aba"
5492
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
5493
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
5494
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
5495
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
5496
     *  (example of how it does not repeat)
5497
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
5498
     * </pre>
5499
     *
5500
     * @param text
5501
     *            text to search and replace in, no-op if null
5502
     * @param searchList
5503
     *            the Strings to search for, no-op if null
5504
     * @param replacementList
5505
     *            the Strings to replace them with, no-op if null
5506
     * @return the text with any replacements processed, {@code null} if
5507
     *         null String input
5508
     * @throws IllegalArgumentException
5509
     *             if the lengths of the arrays are not the same (null is ok,
5510
     *             and/or size 0)
5511
     * @since 2.4
5512
     */
5513
    public static String replaceEach(final String text, final String[] searchList, final String[] replacementList) {
5514 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, false, 0);
5515
    }
5516
5517
    /**
5518
     * <p>
5519
     * Replaces all occurrences of Strings within another String.
5520
     * </p>
5521
     *
5522
     * <p>
5523
     * A {@code null} reference passed to this method is a no-op, or if
5524
     * any "search string" or "string to replace" is null, that replace will be
5525
     * ignored.
5526
     * </p>
5527
     *
5528
     * <pre>
5529
     *  StringUtils.replaceEachRepeatedly(null, *, *) = null
5530
     *  StringUtils.replaceEachRepeatedly("", *, *) = ""
5531
     *  StringUtils.replaceEachRepeatedly("aba", null, null) = "aba"
5532
     *  StringUtils.replaceEachRepeatedly("aba", new String[0], null) = "aba"
5533
     *  StringUtils.replaceEachRepeatedly("aba", null, new String[0]) = "aba"
5534
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, null) = "aba"
5535
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, new String[]{""}) = "b"
5536
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{null}, new String[]{"a"}) = "aba"
5537
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"
5538
     *  (example of how it repeats)
5539
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"
5540
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}) = IllegalStateException
5541
     * </pre>
5542
     *
5543
     * @param text
5544
     *            text to search and replace in, no-op if null
5545
     * @param searchList
5546
     *            the Strings to search for, no-op if null
5547
     * @param replacementList
5548
     *            the Strings to replace them with, no-op if null
5549
     * @return the text with any replacements processed, {@code null} if
5550
     *         null String input
5551
     * @throws IllegalStateException
5552
     *             if the search is repeating and there is an endless loop due
5553
     *             to outputs of one being inputs to another
5554
     * @throws IllegalArgumentException
5555
     *             if the lengths of the arrays are not the same (null is ok,
5556
     *             and/or size 0)
5557
     * @since 2.4
5558
     */
5559
    public static String replaceEachRepeatedly(final String text, final String[] searchList, final String[] replacementList) {
5560
        // timeToLive should be 0 if not used or nothing to replace, else it's
5561
        // the length of the replace array
5562 1 1. replaceEachRepeatedly : negated conditional → KILLED
        final int timeToLive = searchList == null ? 0 : searchList.length;
5563 1 1. replaceEachRepeatedly : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, true, timeToLive);
5564
    }
5565
5566
    /**
5567
     * <p>
5568
     * Replace all occurrences of Strings within another String.
5569
     * This is a private recursive helper method for {@link #replaceEachRepeatedly(String, String[], String[])} and
5570
     * {@link #replaceEach(String, String[], String[])}
5571
     * </p>
5572
     *
5573
     * <p>
5574
     * A {@code null} reference passed to this method is a no-op, or if
5575
     * any "search string" or "string to replace" is null, that replace will be
5576
     * ignored.
5577
     * </p>
5578
     *
5579
     * <pre>
5580
     *  StringUtils.replaceEach(null, *, *, *, *) = null
5581
     *  StringUtils.replaceEach("", *, *, *, *) = ""
5582
     *  StringUtils.replaceEach("aba", null, null, *, *) = "aba"
5583
     *  StringUtils.replaceEach("aba", new String[0], null, *, *) = "aba"
5584
     *  StringUtils.replaceEach("aba", null, new String[0], *, *) = "aba"
5585
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null, *, *) = "aba"
5586
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""}, *, >=0) = "b"
5587
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"}, *, >=0) = "aba"
5588
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}, *, >=0) = "wcte"
5589
     *  (example of how it repeats)
5590
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, false, >=0) = "dcte"
5591
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, true, >=2) = "tcte"
5592
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, *, *) = IllegalStateException
5593
     * </pre>
5594
     *
5595
     * @param text
5596
     *            text to search and replace in, no-op if null
5597
     * @param searchList
5598
     *            the Strings to search for, no-op if null
5599
     * @param replacementList
5600
     *            the Strings to replace them with, no-op if null
5601
     * @param repeat if true, then replace repeatedly
5602
     *       until there are no more possible replacements or timeToLive < 0
5603
     * @param timeToLive
5604
     *            if less than 0 then there is a circular reference and endless
5605
     *            loop
5606
     * @return the text with any replacements processed, {@code null} if
5607
     *         null String input
5608
     * @throws IllegalStateException
5609
     *             if the search is repeating and there is an endless loop due
5610
     *             to outputs of one being inputs to another
5611
     * @throws IllegalArgumentException
5612
     *             if the lengths of the arrays are not the same (null is ok,
5613
     *             and/or size 0)
5614
     * @since 2.4
5615
     */
5616
    private static String replaceEach(
5617
            final String text, final String[] searchList, final String[] replacementList, final boolean repeat, final int timeToLive) {
5618
5619
        // mchyzer Performance note: This creates very few new objects (one major goal)
5620
        // let me know if there are performance requests, we can create a harness to measure
5621
5622 6 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
4. replaceEach : negated conditional → KILLED
5. replaceEach : negated conditional → KILLED
6. replaceEach : negated conditional → KILLED
        if (text == null || text.isEmpty() || searchList == null ||
5623
                searchList.length == 0 || replacementList == null || replacementList.length == 0) {
5624 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5625
        }
5626
5627
        // if recursing, this shouldn't be less than 0
5628 2 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : negated conditional → KILLED
        if (timeToLive < 0) {
5629
            throw new IllegalStateException("Aborting to protect against StackOverflowError - " +
5630
                                            "output of one loop is the input of another");
5631
        }
5632
5633
        final int searchLength = searchList.length;
5634
        final int replacementLength = replacementList.length;
5635
5636
        // make sure lengths are ok, these need to be equal
5637 1 1. replaceEach : negated conditional → KILLED
        if (searchLength != replacementLength) {
5638
            throw new IllegalArgumentException("Search and Replace array lengths don't match: "
5639
                + searchLength
5640
                + " vs "
5641
                + replacementLength);
5642
        }
5643
5644
        // keep track of which still have matches
5645
        final boolean[] noMoreMatchesForReplIndex = new boolean[searchLength];
5646
5647
        // index on index that the match was found
5648
        int textIndex = -1;
5649
        int replaceIndex = -1;
5650
        int tempIndex = -1;
5651
5652
        // index of replace array that will replace the search string found
5653
        // NOTE: logic duplicated below START
5654 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = 0; i < searchLength; i++) {
5655 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
            if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5656 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                    searchList[i].isEmpty() || replacementList[i] == null) {
5657
                continue;
5658
            }
5659
            tempIndex = text.indexOf(searchList[i]);
5660
5661
            // see if we need to keep searching for this
5662 1 1. replaceEach : negated conditional → KILLED
            if (tempIndex == -1) {
5663
                noMoreMatchesForReplIndex[i] = true;
5664
            } else {
5665 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                if (textIndex == -1 || tempIndex < textIndex) {
5666
                    textIndex = tempIndex;
5667
                    replaceIndex = i;
5668
                }
5669
            }
5670
        }
5671
        // NOTE: logic mostly below END
5672
5673
        // no search strings found, we are done
5674 1 1. replaceEach : negated conditional → KILLED
        if (textIndex == -1) {
5675 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5676
        }
5677
5678
        int start = 0;
5679
5680
        // get a good guess on the size of the result buffer so it doesn't have to double if it goes over a bit
5681
        int increase = 0;
5682
5683
        // count the replacement text elements that are larger than their corresponding text being replaced
5684 3 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : changed conditional boundary → KILLED
3. replaceEach : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < searchList.length; i++) {
5685 2 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : negated conditional → KILLED
            if (searchList[i] == null || replacementList[i] == null) {
5686
                continue;
5687
            }
5688 1 1. replaceEach : Replaced integer subtraction with addition → SURVIVED
            final int greater = replacementList[i].length() - searchList[i].length();
5689 2 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → SURVIVED
            if (greater > 0) {
5690 2 1. replaceEach : Replaced integer multiplication with division → SURVIVED
2. replaceEach : Replaced integer addition with subtraction → SURVIVED
                increase += 3 * greater; // assume 3 matches
5691
            }
5692
        }
5693
        // have upper-bound at 20% increase, then let Java take over
5694 1 1. replaceEach : Replaced integer division with multiplication → SURVIVED
        increase = Math.min(increase, text.length() / 5);
5695
5696 1 1. replaceEach : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder buf = new StringBuilder(text.length() + increase);
5697
5698 1 1. replaceEach : negated conditional → KILLED
        while (textIndex != -1) {
5699
5700 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = start; i < textIndex; i++) {
5701
                buf.append(text.charAt(i));
5702
            }
5703
            buf.append(replacementList[replaceIndex]);
5704
5705 1 1. replaceEach : Replaced integer addition with subtraction → KILLED
            start = textIndex + searchList[replaceIndex].length();
5706
5707
            textIndex = -1;
5708
            replaceIndex = -1;
5709
            tempIndex = -1;
5710
            // find the next earliest match
5711
            // NOTE: logic mostly duplicated above START
5712 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = 0; i < searchLength; i++) {
5713 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5714 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                        searchList[i].isEmpty() || replacementList[i] == null) {
5715
                    continue;
5716
                }
5717
                tempIndex = text.indexOf(searchList[i], start);
5718
5719
                // see if we need to keep searching for this
5720 1 1. replaceEach : negated conditional → KILLED
                if (tempIndex == -1) {
5721
                    noMoreMatchesForReplIndex[i] = true;
5722
                } else {
5723 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                    if (textIndex == -1 || tempIndex < textIndex) {
5724
                        textIndex = tempIndex;
5725
                        replaceIndex = i;
5726
                    }
5727
                }
5728
            }
5729
            // NOTE: logic duplicated above END
5730
5731
        }
5732
        final int textLength = text.length();
5733 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = start; i < textLength; i++) {
5734
            buf.append(text.charAt(i));
5735
        }
5736
        final String result = buf.toString();
5737 1 1. replaceEach : negated conditional → KILLED
        if (!repeat) {
5738 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
5739
        }
5740
5741 2 1. replaceEach : Replaced integer subtraction with addition → KILLED
2. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(result, searchList, replacementList, repeat, timeToLive - 1);
5742
    }
5743
5744
    // Replace, character based
5745
    //-----------------------------------------------------------------------
5746
    /**
5747
     * <p>Replaces all occurrences of a character in a String with another.
5748
     * This is a null-safe version of {@link String#replace(char, char)}.</p>
5749
     *
5750
     * <p>A {@code null} string input returns {@code null}.
5751
     * An empty ("") string input returns an empty string.</p>
5752
     *
5753
     * <pre>
5754
     * StringUtils.replaceChars(null, *, *)        = null
5755
     * StringUtils.replaceChars("", *, *)          = ""
5756
     * StringUtils.replaceChars("abcba", 'b', 'y') = "aycya"
5757
     * StringUtils.replaceChars("abcba", 'z', 'y') = "abcba"
5758
     * </pre>
5759
     *
5760
     * @param str  String to replace characters in, may be null
5761
     * @param searchChar  the character to search for, may be null
5762
     * @param replaceChar  the character to replace, may be null
5763
     * @return modified String, {@code null} if null string input
5764
     * @since 2.0
5765
     */
5766
    public static String replaceChars(final String str, final char searchChar, final char replaceChar) {
5767 1 1. replaceChars : negated conditional → KILLED
        if (str == null) {
5768 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5769
        }
5770 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.replace(searchChar, replaceChar);
5771
    }
5772
5773
    /**
5774
     * <p>Replaces multiple characters in a String in one go.
5775
     * This method can also be used to delete characters.</p>
5776
     *
5777
     * <p>For example:<br>
5778
     * <code>replaceChars(&quot;hello&quot;, &quot;ho&quot;, &quot;jy&quot;) = jelly</code>.</p>
5779
     *
5780
     * <p>A {@code null} string input returns {@code null}.
5781
     * An empty ("") string input returns an empty string.
5782
     * A null or empty set of search characters returns the input string.</p>
5783
     *
5784
     * <p>The length of the search characters should normally equal the length
5785
     * of the replace characters.
5786
     * If the search characters is longer, then the extra search characters
5787
     * are deleted.
5788
     * If the search characters is shorter, then the extra replace characters
5789
     * are ignored.</p>
5790
     *
5791
     * <pre>
5792
     * StringUtils.replaceChars(null, *, *)           = null
5793
     * StringUtils.replaceChars("", *, *)             = ""
5794
     * StringUtils.replaceChars("abc", null, *)       = "abc"
5795
     * StringUtils.replaceChars("abc", "", *)         = "abc"
5796
     * StringUtils.replaceChars("abc", "b", null)     = "ac"
5797
     * StringUtils.replaceChars("abc", "b", "")       = "ac"
5798
     * StringUtils.replaceChars("abcba", "bc", "yz")  = "ayzya"
5799
     * StringUtils.replaceChars("abcba", "bc", "y")   = "ayya"
5800
     * StringUtils.replaceChars("abcba", "bc", "yzx") = "ayzya"
5801
     * </pre>
5802
     *
5803
     * @param str  String to replace characters in, may be null
5804
     * @param searchChars  a set of characters to search for, may be null
5805
     * @param replaceChars  a set of characters to replace, may be null
5806
     * @return modified String, {@code null} if null string input
5807
     * @since 2.0
5808
     */
5809
    public static String replaceChars(final String str, final String searchChars, String replaceChars) {
5810 2 1. replaceChars : negated conditional → KILLED
2. replaceChars : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(searchChars)) {
5811 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5812
        }
5813 1 1. replaceChars : negated conditional → KILLED
        if (replaceChars == null) {
5814
            replaceChars = EMPTY;
5815
        }
5816
        boolean modified = false;
5817
        final int replaceCharsLength = replaceChars.length();
5818
        final int strLength = str.length();
5819
        final StringBuilder buf = new StringBuilder(strLength);
5820 3 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : Changed increment from 1 to -1 → KILLED
3. replaceChars : negated conditional → KILLED
        for (int i = 0; i < strLength; i++) {
5821
            final char ch = str.charAt(i);
5822
            final int index = searchChars.indexOf(ch);
5823 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
            if (index >= 0) {
5824
                modified = true;
5825 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
                if (index < replaceCharsLength) {
5826
                    buf.append(replaceChars.charAt(index));
5827
                }
5828
            } else {
5829
                buf.append(ch);
5830
            }
5831
        }
5832 1 1. replaceChars : negated conditional → KILLED
        if (modified) {
5833 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return buf.toString();
5834
        }
5835 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
5836
    }
5837
5838
    // Overlay
5839
    //-----------------------------------------------------------------------
5840
    /**
5841
     * <p>Overlays part of a String with another String.</p>
5842
     *
5843
     * <p>A {@code null} string input returns {@code null}.
5844
     * A negative index is treated as zero.
5845
     * An index greater than the string length is treated as the string length.
5846
     * The start index is always the smaller of the two indices.</p>
5847
     *
5848
     * <pre>
5849
     * StringUtils.overlay(null, *, *, *)            = null
5850
     * StringUtils.overlay("", "abc", 0, 0)          = "abc"
5851
     * StringUtils.overlay("abcdef", null, 2, 4)     = "abef"
5852
     * StringUtils.overlay("abcdef", "", 2, 4)       = "abef"
5853
     * StringUtils.overlay("abcdef", "", 4, 2)       = "abef"
5854
     * StringUtils.overlay("abcdef", "zzzz", 2, 4)   = "abzzzzef"
5855
     * StringUtils.overlay("abcdef", "zzzz", 4, 2)   = "abzzzzef"
5856
     * StringUtils.overlay("abcdef", "zzzz", -1, 4)  = "zzzzef"
5857
     * StringUtils.overlay("abcdef", "zzzz", 2, 8)   = "abzzzz"
5858
     * StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"
5859
     * StringUtils.overlay("abcdef", "zzzz", 8, 10)  = "abcdefzzzz"
5860
     * </pre>
5861
     *
5862
     * @param str  the String to do overlaying in, may be null
5863
     * @param overlay  the String to overlay, may be null
5864
     * @param start  the position to start overlaying at
5865
     * @param end  the position to stop overlaying before
5866
     * @return overlayed String, {@code null} if null String input
5867
     * @since 2.0
5868
     */
5869
    public static String overlay(final String str, String overlay, int start, int end) {
5870 1 1. overlay : negated conditional → KILLED
        if (str == null) {
5871 1 1. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5872
        }
5873 1 1. overlay : negated conditional → KILLED
        if (overlay == null) {
5874
            overlay = EMPTY;
5875
        }
5876
        final int len = str.length();
5877 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start < 0) {
5878
            start = 0;
5879
        }
5880 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > len) {
5881
            start = len;
5882
        }
5883 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end < 0) {
5884
            end = 0;
5885
        }
5886 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end > len) {
5887
            end = len;
5888
        }
5889 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > end) {
5890
            final int temp = start;
5891
            start = end;
5892
            end = temp;
5893
        }
5894 5 1. overlay : Replaced integer subtraction with addition → SURVIVED
2. overlay : Replaced integer addition with subtraction → KILLED
3. overlay : Replaced integer addition with subtraction → KILLED
4. overlay : Replaced integer addition with subtraction → KILLED
5. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(len + start - end + overlay.length() + 1)
5895
            .append(str.substring(0, start))
5896
            .append(overlay)
5897
            .append(str.substring(end))
5898
            .toString();
5899
    }
5900
5901
    // Chomping
5902
    //-----------------------------------------------------------------------
5903
    /**
5904
     * <p>Removes one newline from end of a String if it's there,
5905
     * otherwise leave it alone.  A newline is &quot;{@code \n}&quot;,
5906
     * &quot;{@code \r}&quot;, or &quot;{@code \r\n}&quot;.</p>
5907
     *
5908
     * <p>NOTE: This method changed in 2.0.
5909
     * It now more closely matches Perl chomp.</p>
5910
     *
5911
     * <pre>
5912
     * StringUtils.chomp(null)          = null
5913
     * StringUtils.chomp("")            = ""
5914
     * StringUtils.chomp("abc \r")      = "abc "
5915
     * StringUtils.chomp("abc\n")       = "abc"
5916
     * StringUtils.chomp("abc\r\n")     = "abc"
5917
     * StringUtils.chomp("abc\r\n\r\n") = "abc\r\n"
5918
     * StringUtils.chomp("abc\n\r")     = "abc\n"
5919
     * StringUtils.chomp("abc\n\rabc")  = "abc\n\rabc"
5920
     * StringUtils.chomp("\r")          = ""
5921
     * StringUtils.chomp("\n")          = ""
5922
     * StringUtils.chomp("\r\n")        = ""
5923
     * </pre>
5924
     *
5925
     * @param str  the String to chomp a newline from, may be null
5926
     * @return String without newline, {@code null} if null String input
5927
     */
5928
    public static String chomp(final String str) {
5929 1 1. chomp : negated conditional → KILLED
        if (isEmpty(str)) {
5930 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5931
        }
5932
5933 1 1. chomp : negated conditional → KILLED
        if (str.length() == 1) {
5934
            final char ch = str.charAt(0);
5935 2 1. chomp : negated conditional → KILLED
2. chomp : negated conditional → KILLED
            if (ch == CharUtils.CR || ch == CharUtils.LF) {
5936 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
5937
            }
5938 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5939
        }
5940
5941 1 1. chomp : Replaced integer subtraction with addition → KILLED
        int lastIdx = str.length() - 1;
5942
        final char last = str.charAt(lastIdx);
5943
5944 1 1. chomp : negated conditional → KILLED
        if (last == CharUtils.LF) {
5945 2 1. chomp : Replaced integer subtraction with addition → KILLED
2. chomp : negated conditional → KILLED
            if (str.charAt(lastIdx - 1) == CharUtils.CR) {
5946 1 1. chomp : Changed increment from -1 to 1 → KILLED
                lastIdx--;
5947
            }
5948 1 1. chomp : negated conditional → KILLED
        } else if (last != CharUtils.CR) {
5949 1 1. chomp : Changed increment from 1 to -1 → KILLED
            lastIdx++;
5950
        }
5951 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, lastIdx);
5952
    }
5953
5954
    /**
5955
     * <p>Removes {@code separator} from the end of
5956
     * {@code str} if it's there, otherwise leave it alone.</p>
5957
     *
5958
     * <p>NOTE: This method changed in version 2.0.
5959
     * It now more closely matches Perl chomp.
5960
     * For the previous behavior, use {@link #substringBeforeLast(String, String)}.
5961
     * This method uses {@link String#endsWith(String)}.</p>
5962
     *
5963
     * <pre>
5964
     * StringUtils.chomp(null, *)         = null
5965
     * StringUtils.chomp("", *)           = ""
5966
     * StringUtils.chomp("foobar", "bar") = "foo"
5967
     * StringUtils.chomp("foobar", "baz") = "foobar"
5968
     * StringUtils.chomp("foo", "foo")    = ""
5969
     * StringUtils.chomp("foo ", "foo")   = "foo "
5970
     * StringUtils.chomp(" foo", "foo")   = " "
5971
     * StringUtils.chomp("foo", "foooo")  = "foo"
5972
     * StringUtils.chomp("foo", "")       = "foo"
5973
     * StringUtils.chomp("foo", null)     = "foo"
5974
     * </pre>
5975
     *
5976
     * @param str  the String to chomp from, may be null
5977
     * @param separator  separator String, may be null
5978
     * @return String without trailing separator, {@code null} if null String input
5979
     * @deprecated This feature will be removed in Lang 4.0, use {@link StringUtils#removeEnd(String, String)} instead
5980
     */
5981
    @Deprecated
5982
    public static String chomp(final String str, final String separator) {
5983 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(str,separator);
5984
    }
5985
5986
    // Chopping
5987
    //-----------------------------------------------------------------------
5988
    /**
5989
     * <p>Remove the last character from a String.</p>
5990
     *
5991
     * <p>If the String ends in {@code \r\n}, then remove both
5992
     * of them.</p>
5993
     *
5994
     * <pre>
5995
     * StringUtils.chop(null)          = null
5996
     * StringUtils.chop("")            = ""
5997
     * StringUtils.chop("abc \r")      = "abc "
5998
     * StringUtils.chop("abc\n")       = "abc"
5999
     * StringUtils.chop("abc\r\n")     = "abc"
6000
     * StringUtils.chop("abc")         = "ab"
6001
     * StringUtils.chop("abc\nabc")    = "abc\nab"
6002
     * StringUtils.chop("a")           = ""
6003
     * StringUtils.chop("\r")          = ""
6004
     * StringUtils.chop("\n")          = ""
6005
     * StringUtils.chop("\r\n")        = ""
6006
     * </pre>
6007
     *
6008
     * @param str  the String to chop last character from, may be null
6009
     * @return String without last character, {@code null} if null String input
6010
     */
6011
    public static String chop(final String str) {
6012 1 1. chop : negated conditional → KILLED
        if (str == null) {
6013 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6014
        }
6015
        final int strLen = str.length();
6016 2 1. chop : changed conditional boundary → SURVIVED
2. chop : negated conditional → KILLED
        if (strLen < 2) {
6017 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6018
        }
6019 1 1. chop : Replaced integer subtraction with addition → KILLED
        final int lastIdx = strLen - 1;
6020
        final String ret = str.substring(0, lastIdx);
6021
        final char last = str.charAt(lastIdx);
6022 3 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : negated conditional → KILLED
3. chop : negated conditional → KILLED
        if (last == CharUtils.LF && ret.charAt(lastIdx - 1) == CharUtils.CR) {
6023 2 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ret.substring(0, lastIdx - 1);
6024
        }
6025 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return ret;
6026
    }
6027
6028
    // Conversion
6029
    //-----------------------------------------------------------------------
6030
6031
    // Padding
6032
    //-----------------------------------------------------------------------
6033
    /**
6034
     * <p>Repeat a String {@code repeat} times to form a
6035
     * new String.</p>
6036
     *
6037
     * <pre>
6038
     * StringUtils.repeat(null, 2) = null
6039
     * StringUtils.repeat("", 0)   = ""
6040
     * StringUtils.repeat("", 2)   = ""
6041
     * StringUtils.repeat("a", 3)  = "aaa"
6042
     * StringUtils.repeat("ab", 2) = "abab"
6043
     * StringUtils.repeat("a", -2) = ""
6044
     * </pre>
6045
     *
6046
     * @param str  the String to repeat, may be null
6047
     * @param repeat  number of times to repeat str, negative treated as zero
6048
     * @return a new String consisting of the original String repeated,
6049
     *  {@code null} if null String input
6050
     */
6051
    public static String repeat(final String str, final int repeat) {
6052
        // Performance tuned for 2.0 (JDK1.4)
6053
6054 1 1. repeat : negated conditional → KILLED
        if (str == null) {
6055 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6056
        }
6057 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6058 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6059
        }
6060
        final int inputLength = str.length();
6061 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if (repeat == 1 || inputLength == 0) {
6062 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6063
        }
6064 3 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → SURVIVED
3. repeat : negated conditional → KILLED
        if (inputLength == 1 && repeat <= PAD_LIMIT) {
6065 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str.charAt(0), repeat);
6066
        }
6067
6068 1 1. repeat : Replaced integer multiplication with division → KILLED
        final int outputLength = inputLength * repeat;
6069
        switch (inputLength) {
6070
            case 1 :
6071 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return repeat(str.charAt(0), repeat);
6072
            case 2 :
6073
                final char ch0 = str.charAt(0);
6074
                final char ch1 = str.charAt(1);
6075
                final char[] output2 = new char[outputLength];
6076 6 1. repeat : Changed increment from -1 to 1 → TIMED_OUT
2. repeat : Changed increment from -1 to 1 → TIMED_OUT
3. repeat : changed conditional boundary → KILLED
4. repeat : Replaced integer multiplication with division → KILLED
5. repeat : Replaced integer subtraction with addition → KILLED
6. repeat : negated conditional → KILLED
                for (int i = repeat * 2 - 2; i >= 0; i--, i--) {
6077
                    output2[i] = ch0;
6078 1 1. repeat : Replaced integer addition with subtraction → KILLED
                    output2[i + 1] = ch1;
6079
                }
6080 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return new String(output2);
6081
            default :
6082
                final StringBuilder buf = new StringBuilder(outputLength);
6083 3 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from 1 to -1 → KILLED
3. repeat : negated conditional → KILLED
                for (int i = 0; i < repeat; i++) {
6084
                    buf.append(str);
6085
                }
6086 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return buf.toString();
6087
        }
6088
    }
6089
6090
    /**
6091
     * <p>Repeat a String {@code repeat} times to form a
6092
     * new String, with a String separator injected each time. </p>
6093
     *
6094
     * <pre>
6095
     * StringUtils.repeat(null, null, 2) = null
6096
     * StringUtils.repeat(null, "x", 2)  = null
6097
     * StringUtils.repeat("", null, 0)   = ""
6098
     * StringUtils.repeat("", "", 2)     = ""
6099
     * StringUtils.repeat("", "x", 3)    = "xxx"
6100
     * StringUtils.repeat("?", ", ", 3)  = "?, ?, ?"
6101
     * </pre>
6102
     *
6103
     * @param str        the String to repeat, may be null
6104
     * @param separator  the String to inject, may be null
6105
     * @param repeat     number of times to repeat str, negative treated as zero
6106
     * @return a new String consisting of the original String repeated,
6107
     *  {@code null} if null String input
6108
     * @since 2.5
6109
     */
6110
    public static String repeat(final String str, final String separator, final int repeat) {
6111 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if(str == null || separator == null) {
6112 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str, repeat);
6113
        }
6114
        // given that repeat(String, int) is quite optimized, better to rely on it than try and splice this into it
6115
        final String result = repeat(str + separator, repeat);
6116 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(result, separator);
6117
    }
6118
6119
    /**
6120
     * <p>Returns padding using the specified delimiter repeated
6121
     * to a given length.</p>
6122
     *
6123
     * <pre>
6124
     * StringUtils.repeat('e', 0)  = ""
6125
     * StringUtils.repeat('e', 3)  = "eee"
6126
     * StringUtils.repeat('e', -2) = ""
6127
     * </pre>
6128
     *
6129
     * <p>Note: this method doesn't not support padding with
6130
     * <a href="http://www.unicode.org/glossary/#supplementary_character">Unicode Supplementary Characters</a>
6131
     * as they require a pair of {@code char}s to be represented.
6132
     * If you are needing to support full I18N of your applications
6133
     * consider using {@link #repeat(String, int)} instead.
6134
     * </p>
6135
     *
6136
     * @param ch  character to repeat
6137
     * @param repeat  number of times to repeat char, negative treated as zero
6138
     * @return String with repeated character
6139
     * @see #repeat(String, int)
6140
     */
6141
    public static String repeat(final char ch, final int repeat) {
6142 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6143 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6144
        }
6145
        final char[] buf = new char[repeat];
6146 4 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from -1 to 1 → KILLED
3. repeat : Replaced integer subtraction with addition → KILLED
4. repeat : negated conditional → KILLED
        for (int i = repeat - 1; i >= 0; i--) {
6147
            buf[i] = ch;
6148
        }
6149 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(buf);
6150
    }
6151
6152
    /**
6153
     * <p>Right pad a String with spaces (' ').</p>
6154
     *
6155
     * <p>The String is padded to the size of {@code size}.</p>
6156
     *
6157
     * <pre>
6158
     * StringUtils.rightPad(null, *)   = null
6159
     * StringUtils.rightPad("", 3)     = "   "
6160
     * StringUtils.rightPad("bat", 3)  = "bat"
6161
     * StringUtils.rightPad("bat", 5)  = "bat  "
6162
     * StringUtils.rightPad("bat", 1)  = "bat"
6163
     * StringUtils.rightPad("bat", -1) = "bat"
6164
     * </pre>
6165
     *
6166
     * @param str  the String to pad out, may be null
6167
     * @param size  the size to pad to
6168
     * @return right padded String or original String if no padding is necessary,
6169
     *  {@code null} if null String input
6170
     */
6171
    public static String rightPad(final String str, final int size) {
6172 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return rightPad(str, size, ' ');
6173
    }
6174
6175
    /**
6176
     * <p>Right pad a String with a specified character.</p>
6177
     *
6178
     * <p>The String is padded to the size of {@code size}.</p>
6179
     *
6180
     * <pre>
6181
     * StringUtils.rightPad(null, *, *)     = null
6182
     * StringUtils.rightPad("", 3, 'z')     = "zzz"
6183
     * StringUtils.rightPad("bat", 3, 'z')  = "bat"
6184
     * StringUtils.rightPad("bat", 5, 'z')  = "batzz"
6185
     * StringUtils.rightPad("bat", 1, 'z')  = "bat"
6186
     * StringUtils.rightPad("bat", -1, 'z') = "bat"
6187
     * </pre>
6188
     *
6189
     * @param str  the String to pad out, may be null
6190
     * @param size  the size to pad to
6191
     * @param padChar  the character to pad with
6192
     * @return right padded String or original String if no padding is necessary,
6193
     *  {@code null} if null String input
6194
     * @since 2.0
6195
     */
6196
    public static String rightPad(final String str, final int size, final char padChar) {
6197 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6198 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6199
        }
6200 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6201 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6202 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6203
        }
6204 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6205 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, String.valueOf(padChar));
6206
        }
6207 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.concat(repeat(padChar, pads));
6208
    }
6209
6210
    /**
6211
     * <p>Right pad a String with a specified String.</p>
6212
     *
6213
     * <p>The String is padded to the size of {@code size}.</p>
6214
     *
6215
     * <pre>
6216
     * StringUtils.rightPad(null, *, *)      = null
6217
     * StringUtils.rightPad("", 3, "z")      = "zzz"
6218
     * StringUtils.rightPad("bat", 3, "yz")  = "bat"
6219
     * StringUtils.rightPad("bat", 5, "yz")  = "batyz"
6220
     * StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"
6221
     * StringUtils.rightPad("bat", 1, "yz")  = "bat"
6222
     * StringUtils.rightPad("bat", -1, "yz") = "bat"
6223
     * StringUtils.rightPad("bat", 5, null)  = "bat  "
6224
     * StringUtils.rightPad("bat", 5, "")    = "bat  "
6225
     * </pre>
6226
     *
6227
     * @param str  the String to pad out, may be null
6228
     * @param size  the size to pad to
6229
     * @param padStr  the String to pad with, null or empty treated as single space
6230
     * @return right padded String or original String if no padding is necessary,
6231
     *  {@code null} if null String input
6232
     */
6233
    public static String rightPad(final String str, final int size, String padStr) {
6234 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6235 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6236
        }
6237 1 1. rightPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6238
            padStr = SPACE;
6239
        }
6240
        final int padLen = padStr.length();
6241
        final int strLen = str.length();
6242 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6243 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6244 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6245
        }
6246 3 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
3. rightPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6247 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, padStr.charAt(0));
6248
        }
6249
6250 1 1. rightPad : negated conditional → KILLED
        if (pads == padLen) {
6251 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr);
6252 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        } else if (pads < padLen) {
6253 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr.substring(0, pads));
6254
        } else {
6255
            final char[] padding = new char[pads];
6256
            final char[] padChars = padStr.toCharArray();
6257 3 1. rightPad : changed conditional boundary → KILLED
2. rightPad : Changed increment from 1 to -1 → KILLED
3. rightPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6258 1 1. rightPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6259
            }
6260 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(new String(padding));
6261
        }
6262
    }
6263
6264
    /**
6265
     * <p>Left pad a String with spaces (' ').</p>
6266
     *
6267
     * <p>The String is padded to the size of {@code size}.</p>
6268
     *
6269
     * <pre>
6270
     * StringUtils.leftPad(null, *)   = null
6271
     * StringUtils.leftPad("", 3)     = "   "
6272
     * StringUtils.leftPad("bat", 3)  = "bat"
6273
     * StringUtils.leftPad("bat", 5)  = "  bat"
6274
     * StringUtils.leftPad("bat", 1)  = "bat"
6275
     * StringUtils.leftPad("bat", -1) = "bat"
6276
     * </pre>
6277
     *
6278
     * @param str  the String to pad out, may be null
6279
     * @param size  the size to pad to
6280
     * @return left padded String or original String if no padding is necessary,
6281
     *  {@code null} if null String input
6282
     */
6283
    public static String leftPad(final String str, final int size) {
6284 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return leftPad(str, size, ' ');
6285
    }
6286
6287
    /**
6288
     * <p>Left pad a String with a specified character.</p>
6289
     *
6290
     * <p>Pad to a size of {@code size}.</p>
6291
     *
6292
     * <pre>
6293
     * StringUtils.leftPad(null, *, *)     = null
6294
     * StringUtils.leftPad("", 3, 'z')     = "zzz"
6295
     * StringUtils.leftPad("bat", 3, 'z')  = "bat"
6296
     * StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
6297
     * StringUtils.leftPad("bat", 1, 'z')  = "bat"
6298
     * StringUtils.leftPad("bat", -1, 'z') = "bat"
6299
     * </pre>
6300
     *
6301
     * @param str  the String to pad out, may be null
6302
     * @param size  the size to pad to
6303
     * @param padChar  the character to pad with
6304
     * @return left padded String or original String if no padding is necessary,
6305
     *  {@code null} if null String input
6306
     * @since 2.0
6307
     */
6308
    public static String leftPad(final String str, final int size, final char padChar) {
6309 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6310 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6311
        }
6312 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6313 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6314 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6315
        }
6316 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6317 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, String.valueOf(padChar));
6318
        }
6319 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return repeat(padChar, pads).concat(str);
6320
    }
6321
6322
    /**
6323
     * <p>Left pad a String with a specified String.</p>
6324
     *
6325
     * <p>Pad to a size of {@code size}.</p>
6326
     *
6327
     * <pre>
6328
     * StringUtils.leftPad(null, *, *)      = null
6329
     * StringUtils.leftPad("", 3, "z")      = "zzz"
6330
     * StringUtils.leftPad("bat", 3, "yz")  = "bat"
6331
     * StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
6332
     * StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"
6333
     * StringUtils.leftPad("bat", 1, "yz")  = "bat"
6334
     * StringUtils.leftPad("bat", -1, "yz") = "bat"
6335
     * StringUtils.leftPad("bat", 5, null)  = "  bat"
6336
     * StringUtils.leftPad("bat", 5, "")    = "  bat"
6337
     * </pre>
6338
     *
6339
     * @param str  the String to pad out, may be null
6340
     * @param size  the size to pad to
6341
     * @param padStr  the String to pad with, null or empty treated as single space
6342
     * @return left padded String or original String if no padding is necessary,
6343
     *  {@code null} if null String input
6344
     */
6345
    public static String leftPad(final String str, final int size, String padStr) {
6346 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6347 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6348
        }
6349 1 1. leftPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6350
            padStr = SPACE;
6351
        }
6352
        final int padLen = padStr.length();
6353
        final int strLen = str.length();
6354 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6355 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6356 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6357
        }
6358 3 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
3. leftPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6359 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, padStr.charAt(0));
6360
        }
6361
6362 1 1. leftPad : negated conditional → KILLED
        if (pads == padLen) {
6363 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.concat(str);
6364 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        } else if (pads < padLen) {
6365 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.substring(0, pads).concat(str);
6366
        } else {
6367
            final char[] padding = new char[pads];
6368
            final char[] padChars = padStr.toCharArray();
6369 3 1. leftPad : changed conditional boundary → KILLED
2. leftPad : Changed increment from 1 to -1 → KILLED
3. leftPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6370 1 1. leftPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6371
            }
6372 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return new String(padding).concat(str);
6373
        }
6374
    }
6375
6376
    /**
6377
     * Gets a CharSequence length or {@code 0} if the CharSequence is
6378
     * {@code null}.
6379
     *
6380
     * @param cs
6381
     *            a CharSequence or {@code null}
6382
     * @return CharSequence length or {@code 0} if the CharSequence is
6383
     *         {@code null}.
6384
     * @since 2.4
6385
     * @since 3.0 Changed signature from length(String) to length(CharSequence)
6386
     */
6387
    public static int length(final CharSequence cs) {
6388 2 1. length : negated conditional → KILLED
2. length : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null ? 0 : cs.length();
6389
    }
6390
6391
    // Centering
6392
    //-----------------------------------------------------------------------
6393
    /**
6394
     * <p>Centers a String in a larger String of size {@code size}
6395
     * using the space character (' ').</p>
6396
     *
6397
     * <p>If the size is less than the String length, the String is returned.
6398
     * A {@code null} String returns {@code null}.
6399
     * A negative size is treated as zero.</p>
6400
     *
6401
     * <p>Equivalent to {@code center(str, size, " ")}.</p>
6402
     *
6403
     * <pre>
6404
     * StringUtils.center(null, *)   = null
6405
     * StringUtils.center("", 4)     = "    "
6406
     * StringUtils.center("ab", -1)  = "ab"
6407
     * StringUtils.center("ab", 4)   = " ab "
6408
     * StringUtils.center("abcd", 2) = "abcd"
6409
     * StringUtils.center("a", 4)    = " a  "
6410
     * </pre>
6411
     *
6412
     * @param str  the String to center, may be null
6413
     * @param size  the int size of new String, negative treated as zero
6414
     * @return centered String, {@code null} if null String input
6415
     */
6416
    public static String center(final String str, final int size) {
6417 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return center(str, size, ' ');
6418
    }
6419
6420
    /**
6421
     * <p>Centers a String in a larger String of size {@code size}.
6422
     * Uses a supplied character as the value to pad the String with.</p>
6423
     *
6424
     * <p>If the size is less than the String length, the String is returned.
6425
     * A {@code null} String returns {@code null}.
6426
     * A negative size is treated as zero.</p>
6427
     *
6428
     * <pre>
6429
     * StringUtils.center(null, *, *)     = null
6430
     * StringUtils.center("", 4, ' ')     = "    "
6431
     * StringUtils.center("ab", -1, ' ')  = "ab"
6432
     * StringUtils.center("ab", 4, ' ')   = " ab "
6433
     * StringUtils.center("abcd", 2, ' ') = "abcd"
6434
     * StringUtils.center("a", 4, ' ')    = " a  "
6435
     * StringUtils.center("a", 4, 'y')    = "yayy"
6436
     * </pre>
6437
     *
6438
     * @param str  the String to center, may be null
6439
     * @param size  the int size of new String, negative treated as zero
6440
     * @param padChar  the character to pad the new String with
6441
     * @return centered String, {@code null} if null String input
6442
     * @since 2.0
6443
     */
6444
    public static String center(String str, final int size, final char padChar) {
6445 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6446 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6447
        }
6448
        final int strLen = str.length();
6449 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6450 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6451 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6452
        }
6453 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padChar);
6454
        str = rightPad(str, size, padChar);
6455 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6456
    }
6457
6458
    /**
6459
     * <p>Centers a String in a larger String of size {@code size}.
6460
     * Uses a supplied String as the value to pad the String with.</p>
6461
     *
6462
     * <p>If the size is less than the String length, the String is returned.
6463
     * A {@code null} String returns {@code null}.
6464
     * A negative size is treated as zero.</p>
6465
     *
6466
     * <pre>
6467
     * StringUtils.center(null, *, *)     = null
6468
     * StringUtils.center("", 4, " ")     = "    "
6469
     * StringUtils.center("ab", -1, " ")  = "ab"
6470
     * StringUtils.center("ab", 4, " ")   = " ab "
6471
     * StringUtils.center("abcd", 2, " ") = "abcd"
6472
     * StringUtils.center("a", 4, " ")    = " a  "
6473
     * StringUtils.center("a", 4, "yz")   = "yayz"
6474
     * StringUtils.center("abc", 7, null) = "  abc  "
6475
     * StringUtils.center("abc", 7, "")   = "  abc  "
6476
     * </pre>
6477
     *
6478
     * @param str  the String to center, may be null
6479
     * @param size  the int size of new String, negative treated as zero
6480
     * @param padStr  the String to pad the new String with, must not be null or empty
6481
     * @return centered String, {@code null} if null String input
6482
     * @throws IllegalArgumentException if padStr is {@code null} or empty
6483
     */
6484
    public static String center(String str, final int size, String padStr) {
6485 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6486 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6487
        }
6488 1 1. center : negated conditional → KILLED
        if (isEmpty(padStr)) {
6489
            padStr = SPACE;
6490
        }
6491
        final int strLen = str.length();
6492 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6493 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6494 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6495
        }
6496 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padStr);
6497
        str = rightPad(str, size, padStr);
6498 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6499
    }
6500
6501
    // Case conversion
6502
    //-----------------------------------------------------------------------
6503
    /**
6504
     * <p>Converts a String to upper case as per {@link String#toUpperCase()}.</p>
6505
     *
6506
     * <p>A {@code null} input String returns {@code null}.</p>
6507
     *
6508
     * <pre>
6509
     * StringUtils.upperCase(null)  = null
6510
     * StringUtils.upperCase("")    = ""
6511
     * StringUtils.upperCase("aBc") = "ABC"
6512
     * </pre>
6513
     *
6514
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toUpperCase()},
6515
     * the result of this method is affected by the current locale.
6516
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6517
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6518
     *
6519
     * @param str  the String to upper case, may be null
6520
     * @return the upper cased String, {@code null} if null String input
6521
     */
6522
    public static String upperCase(final String str) {
6523 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6524 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6525
        }
6526 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase();
6527
    }
6528
6529
    /**
6530
     * <p>Converts a String to upper case as per {@link String#toUpperCase(Locale)}.</p>
6531
     *
6532
     * <p>A {@code null} input String returns {@code null}.</p>
6533
     *
6534
     * <pre>
6535
     * StringUtils.upperCase(null, Locale.ENGLISH)  = null
6536
     * StringUtils.upperCase("", Locale.ENGLISH)    = ""
6537
     * StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"
6538
     * </pre>
6539
     *
6540
     * @param str  the String to upper case, may be null
6541
     * @param locale  the locale that defines the case transformation rules, must not be null
6542
     * @return the upper cased String, {@code null} if null String input
6543
     * @since 2.5
6544
     */
6545
    public static String upperCase(final String str, final Locale locale) {
6546 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6547 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6548
        }
6549 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase(locale);
6550
    }
6551
6552
    /**
6553
     * <p>Converts a String to lower case as per {@link String#toLowerCase()}.</p>
6554
     *
6555
     * <p>A {@code null} input String returns {@code null}.</p>
6556
     *
6557
     * <pre>
6558
     * StringUtils.lowerCase(null)  = null
6559
     * StringUtils.lowerCase("")    = ""
6560
     * StringUtils.lowerCase("aBc") = "abc"
6561
     * </pre>
6562
     *
6563
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toLowerCase()},
6564
     * the result of this method is affected by the current locale.
6565
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6566
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6567
     *
6568
     * @param str  the String to lower case, may be null
6569
     * @return the lower cased String, {@code null} if null String input
6570
     */
6571
    public static String lowerCase(final String str) {
6572 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6573 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6574
        }
6575 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase();
6576
    }
6577
6578
    /**
6579
     * <p>Converts a String to lower case as per {@link String#toLowerCase(Locale)}.</p>
6580
     *
6581
     * <p>A {@code null} input String returns {@code null}.</p>
6582
     *
6583
     * <pre>
6584
     * StringUtils.lowerCase(null, Locale.ENGLISH)  = null
6585
     * StringUtils.lowerCase("", Locale.ENGLISH)    = ""
6586
     * StringUtils.lowerCase("aBc", Locale.ENGLISH) = "abc"
6587
     * </pre>
6588
     *
6589
     * @param str  the String to lower case, may be null
6590
     * @param locale  the locale that defines the case transformation rules, must not be null
6591
     * @return the lower cased String, {@code null} if null String input
6592
     * @since 2.5
6593
     */
6594
    public static String lowerCase(final String str, final Locale locale) {
6595 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6596 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6597
        }
6598 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase(locale);
6599
    }
6600
6601
    /**
6602
     * <p>Capitalizes a String changing the first character to title case as
6603
     * per {@link Character#toTitleCase(int)}. No other characters are changed.</p>
6604
     *
6605
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#capitalize(String)}.
6606
     * A {@code null} input String returns {@code null}.</p>
6607
     *
6608
     * <pre>
6609
     * StringUtils.capitalize(null)  = null
6610
     * StringUtils.capitalize("")    = ""
6611
     * StringUtils.capitalize("cat") = "Cat"
6612
     * StringUtils.capitalize("cAt") = "CAt"
6613
     * StringUtils.capitalize("'cat'") = "'cat'"
6614
     * </pre>
6615
     *
6616
     * @param str the String to capitalize, may be null
6617
     * @return the capitalized String, {@code null} if null String input
6618
     * @see org.apache.commons.lang3.text.WordUtils#capitalize(String)
6619
     * @see #uncapitalize(String)
6620
     * @since 2.0
6621
     */
6622
    public static String capitalize(final String str) {
6623
        int strLen;
6624 2 1. capitalize : negated conditional → KILLED
2. capitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6625 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6626
        }
6627
6628
        final int firstCodepoint = str.codePointAt(0);
6629
        final int newCodePoint = Character.toTitleCase(firstCodepoint);
6630 1 1. capitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6631
            // already capitalized
6632 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6633
        }
6634
6635
        int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6636
        int outOffset = 0;
6637 1 1. capitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6638 2 1. capitalize : changed conditional boundary → KILLED
2. capitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6639
            final int codepoint = str.codePointAt(inOffset);
6640 1 1. capitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6641 1 1. capitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6642
         }
6643 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6644
    }
6645
6646
    /**
6647
     * <p>Uncapitalizes a String, changing the first character to lower case as
6648
     * per {@link Character#toLowerCase(int)}. No other characters are changed.</p>
6649
     *
6650
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#uncapitalize(String)}.
6651
     * A {@code null} input String returns {@code null}.</p>
6652
     *
6653
     * <pre>
6654
     * StringUtils.uncapitalize(null)  = null
6655
     * StringUtils.uncapitalize("")    = ""
6656
     * StringUtils.uncapitalize("cat") = "cat"
6657
     * StringUtils.uncapitalize("Cat") = "cat"
6658
     * StringUtils.uncapitalize("CAT") = "cAT"
6659
     * </pre>
6660
     *
6661
     * @param str the String to uncapitalize, may be null
6662
     * @return the uncapitalized String, {@code null} if null String input
6663
     * @see org.apache.commons.lang3.text.WordUtils#uncapitalize(String)
6664
     * @see #capitalize(String)
6665
     * @since 2.0
6666
     */
6667
    public static String uncapitalize(final String str) {
6668
        int strLen;
6669 2 1. uncapitalize : negated conditional → KILLED
2. uncapitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6670 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6671
        }
6672
6673
        final int firstCodepoint = str.codePointAt(0);
6674
        final int newCodePoint = Character.toLowerCase(firstCodepoint);
6675 1 1. uncapitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6676
            // already capitalized
6677 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6678
        }
6679
6680
        int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6681
        int outOffset = 0;
6682 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6683 2 1. uncapitalize : changed conditional boundary → KILLED
2. uncapitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6684
            final int codepoint = str.codePointAt(inOffset);
6685 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6686 1 1. uncapitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6687
         }
6688 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6689
    }
6690
6691
    /**
6692
     * <p>Swaps the case of a String changing upper and title case to
6693
     * lower case, and lower case to upper case.</p>
6694
     *
6695
     * <ul>
6696
     *  <li>Upper case character converts to Lower case</li>
6697
     *  <li>Title case character converts to Lower case</li>
6698
     *  <li>Lower case character converts to Upper case</li>
6699
     * </ul>
6700
     *
6701
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
6702
     * A {@code null} input String returns {@code null}.</p>
6703
     *
6704
     * <pre>
6705
     * StringUtils.swapCase(null)                 = null
6706
     * StringUtils.swapCase("")                   = ""
6707
     * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
6708
     * </pre>
6709
     *
6710
     * <p>NOTE: This method changed in Lang version 2.0.
6711
     * It no longer performs a word based algorithm.
6712
     * If you only use ASCII, you will notice no change.
6713
     * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
6714
     *
6715
     * @param str  the String to swap case, may be null
6716
     * @return the changed String, {@code null} if null String input
6717
     */
6718
    public static String swapCase(final String str) {
6719 1 1. swapCase : negated conditional → KILLED
        if (StringUtils.isEmpty(str)) {
6720 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6721
        }
6722
6723
        final int strLen = str.length();
6724
        int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6725
        int outOffset = 0;
6726 2 1. swapCase : changed conditional boundary → KILLED
2. swapCase : negated conditional → KILLED
        for (int i = 0; i < strLen; ) {
6727
            final int oldCodepoint = str.codePointAt(i);
6728
            final int newCodePoint;
6729 1 1. swapCase : negated conditional → KILLED
            if (Character.isUpperCase(oldCodepoint)) {
6730
                newCodePoint = Character.toLowerCase(oldCodepoint);
6731 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isTitleCase(oldCodepoint)) {
6732
                newCodePoint = Character.toLowerCase(oldCodepoint);
6733 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isLowerCase(oldCodepoint)) {
6734
                newCodePoint = Character.toUpperCase(oldCodepoint);
6735
            } else {
6736
                newCodePoint = oldCodepoint;
6737
            }
6738 1 1. swapCase : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = newCodePoint;
6739 1 1. swapCase : Replaced integer addition with subtraction → KILLED
            i += Character.charCount(newCodePoint);
6740
         }
6741 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6742
    }
6743
6744
    // Count matches
6745
    //-----------------------------------------------------------------------
6746
    /**
6747
     * <p>Counts how many times the substring appears in the larger string.</p>
6748
     *
6749
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6750
     *
6751
     * <pre>
6752
     * StringUtils.countMatches(null, *)       = 0
6753
     * StringUtils.countMatches("", *)         = 0
6754
     * StringUtils.countMatches("abba", null)  = 0
6755
     * StringUtils.countMatches("abba", "")    = 0
6756
     * StringUtils.countMatches("abba", "a")   = 2
6757
     * StringUtils.countMatches("abba", "ab")  = 1
6758
     * StringUtils.countMatches("abba", "xxx") = 0
6759
     * </pre>
6760
     *
6761
     * @param str  the CharSequence to check, may be null
6762
     * @param sub  the substring to count, may be null
6763
     * @return the number of occurrences, 0 if either CharSequence is {@code null}
6764
     * @since 3.0 Changed signature from countMatches(String, String) to countMatches(CharSequence, CharSequence)
6765
     */
6766
    public static int countMatches(final CharSequence str, final CharSequence sub) {
6767 2 1. countMatches : negated conditional → KILLED
2. countMatches : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(sub)) {
6768 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6769
        }
6770
        int count = 0;
6771
        int idx = 0;
6772 1 1. countMatches : negated conditional → KILLED
        while ((idx = CharSequenceUtils.indexOf(str, sub, idx)) != INDEX_NOT_FOUND) {
6773 1 1. countMatches : Changed increment from 1 to -1 → KILLED
            count++;
6774 1 1. countMatches : Replaced integer addition with subtraction → TIMED_OUT
            idx += sub.length();
6775
        }
6776 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6777
    }
6778
6779
    /**
6780
     * <p>Counts how many times the char appears in the given string.</p>
6781
     *
6782
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6783
     *
6784
     * <pre>
6785
     * StringUtils.countMatches(null, *)       = 0
6786
     * StringUtils.countMatches("", *)         = 0
6787
     * StringUtils.countMatches("abba", 0)  = 0
6788
     * StringUtils.countMatches("abba", 'a')   = 2
6789
     * StringUtils.countMatches("abba", 'b')  = 2
6790
     * StringUtils.countMatches("abba", 'x') = 0
6791
     * </pre>
6792
     *
6793
     * @param str  the CharSequence to check, may be null
6794
     * @param ch  the char to count
6795
     * @return the number of occurrences, 0 if the CharSequence is {@code null}
6796
     * @since 3.4
6797
     */
6798
    public static int countMatches(final CharSequence str, final char ch) {
6799 1 1. countMatches : negated conditional → KILLED
        if (isEmpty(str)) {
6800 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6801
        }
6802
        int count = 0;
6803
        // We could also call str.toCharArray() for faster look ups but that would generate more garbage.
6804 3 1. countMatches : changed conditional boundary → KILLED
2. countMatches : Changed increment from 1 to -1 → KILLED
3. countMatches : negated conditional → KILLED
        for (int i = 0; i < str.length(); i++) {
6805 1 1. countMatches : negated conditional → KILLED
            if (ch == str.charAt(i)) {
6806 1 1. countMatches : Changed increment from 1 to -1 → KILLED
                count++;
6807
            }
6808
        }
6809 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6810
    }
6811
6812
    // Character Tests
6813
    //-----------------------------------------------------------------------
6814
    /**
6815
     * <p>Checks if the CharSequence contains only Unicode letters.</p>
6816
     *
6817
     * <p>{@code null} will return {@code false}.
6818
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6819
     *
6820
     * <pre>
6821
     * StringUtils.isAlpha(null)   = false
6822
     * StringUtils.isAlpha("")     = false
6823
     * StringUtils.isAlpha("  ")   = false
6824
     * StringUtils.isAlpha("abc")  = true
6825
     * StringUtils.isAlpha("ab2c") = false
6826
     * StringUtils.isAlpha("ab-c") = false
6827
     * </pre>
6828
     *
6829
     * @param cs  the CharSequence to check, may be null
6830
     * @return {@code true} if only contains letters, and is non-null
6831
     * @since 3.0 Changed signature from isAlpha(String) to isAlpha(CharSequence)
6832
     * @since 3.0 Changed "" to return false and not true
6833
     */
6834
    public static boolean isAlpha(final CharSequence cs) {
6835 1 1. isAlpha : negated conditional → KILLED
        if (isEmpty(cs)) {
6836 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6837
        }
6838
        final int sz = cs.length();
6839 3 1. isAlpha : changed conditional boundary → KILLED
2. isAlpha : Changed increment from 1 to -1 → KILLED
3. isAlpha : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6840 1 1. isAlpha : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false) {
6841 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6842
            }
6843
        }
6844 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6845
    }
6846
6847
    /**
6848
     * <p>Checks if the CharSequence contains only Unicode letters and
6849
     * space (' ').</p>
6850
     *
6851
     * <p>{@code null} will return {@code false}
6852
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6853
     *
6854
     * <pre>
6855
     * StringUtils.isAlphaSpace(null)   = false
6856
     * StringUtils.isAlphaSpace("")     = true
6857
     * StringUtils.isAlphaSpace("  ")   = true
6858
     * StringUtils.isAlphaSpace("abc")  = true
6859
     * StringUtils.isAlphaSpace("ab c") = true
6860
     * StringUtils.isAlphaSpace("ab2c") = false
6861
     * StringUtils.isAlphaSpace("ab-c") = false
6862
     * </pre>
6863
     *
6864
     * @param cs  the CharSequence to check, may be null
6865
     * @return {@code true} if only contains letters and space,
6866
     *  and is non-null
6867
     * @since 3.0 Changed signature from isAlphaSpace(String) to isAlphaSpace(CharSequence)
6868
     */
6869
    public static boolean isAlphaSpace(final CharSequence cs) {
6870 1 1. isAlphaSpace : negated conditional → KILLED
        if (cs == null) {
6871 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6872
        }
6873
        final int sz = cs.length();
6874 3 1. isAlphaSpace : changed conditional boundary → KILLED
2. isAlphaSpace : Changed increment from 1 to -1 → KILLED
3. isAlphaSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6875 2 1. isAlphaSpace : negated conditional → KILLED
2. isAlphaSpace : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6876 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6877
            }
6878
        }
6879 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6880
    }
6881
6882
    /**
6883
     * <p>Checks if the CharSequence contains only Unicode letters or digits.</p>
6884
     *
6885
     * <p>{@code null} will return {@code false}.
6886
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6887
     *
6888
     * <pre>
6889
     * StringUtils.isAlphanumeric(null)   = false
6890
     * StringUtils.isAlphanumeric("")     = false
6891
     * StringUtils.isAlphanumeric("  ")   = false
6892
     * StringUtils.isAlphanumeric("abc")  = true
6893
     * StringUtils.isAlphanumeric("ab c") = false
6894
     * StringUtils.isAlphanumeric("ab2c") = true
6895
     * StringUtils.isAlphanumeric("ab-c") = false
6896
     * </pre>
6897
     *
6898
     * @param cs  the CharSequence to check, may be null
6899
     * @return {@code true} if only contains letters or digits,
6900
     *  and is non-null
6901
     * @since 3.0 Changed signature from isAlphanumeric(String) to isAlphanumeric(CharSequence)
6902
     * @since 3.0 Changed "" to return false and not true
6903
     */
6904
    public static boolean isAlphanumeric(final CharSequence cs) {
6905 1 1. isAlphanumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
6906 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6907
        }
6908
        final int sz = cs.length();
6909 3 1. isAlphanumeric : changed conditional boundary → KILLED
2. isAlphanumeric : Changed increment from 1 to -1 → KILLED
3. isAlphanumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6910 1 1. isAlphanumeric : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false) {
6911 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6912
            }
6913
        }
6914 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6915
    }
6916
6917
    /**
6918
     * <p>Checks if the CharSequence contains only Unicode letters, digits
6919
     * or space ({@code ' '}).</p>
6920
     *
6921
     * <p>{@code null} will return {@code false}.
6922
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6923
     *
6924
     * <pre>
6925
     * StringUtils.isAlphanumericSpace(null)   = false
6926
     * StringUtils.isAlphanumericSpace("")     = true
6927
     * StringUtils.isAlphanumericSpace("  ")   = true
6928
     * StringUtils.isAlphanumericSpace("abc")  = true
6929
     * StringUtils.isAlphanumericSpace("ab c") = true
6930
     * StringUtils.isAlphanumericSpace("ab2c") = true
6931
     * StringUtils.isAlphanumericSpace("ab-c") = false
6932
     * </pre>
6933
     *
6934
     * @param cs  the CharSequence to check, may be null
6935
     * @return {@code true} if only contains letters, digits or space,
6936
     *  and is non-null
6937
     * @since 3.0 Changed signature from isAlphanumericSpace(String) to isAlphanumericSpace(CharSequence)
6938
     */
6939
    public static boolean isAlphanumericSpace(final CharSequence cs) {
6940 1 1. isAlphanumericSpace : negated conditional → KILLED
        if (cs == null) {
6941 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6942
        }
6943
        final int sz = cs.length();
6944 3 1. isAlphanumericSpace : changed conditional boundary → KILLED
2. isAlphanumericSpace : Changed increment from 1 to -1 → KILLED
3. isAlphanumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6945 2 1. isAlphanumericSpace : negated conditional → KILLED
2. isAlphanumericSpace : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6946 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6947
            }
6948
        }
6949 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6950
    }
6951
6952
    /**
6953
     * <p>Checks if the CharSequence contains only ASCII printable characters.</p>
6954
     *
6955
     * <p>{@code null} will return {@code false}.
6956
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6957
     *
6958
     * <pre>
6959
     * StringUtils.isAsciiPrintable(null)     = false
6960
     * StringUtils.isAsciiPrintable("")       = true
6961
     * StringUtils.isAsciiPrintable(" ")      = true
6962
     * StringUtils.isAsciiPrintable("Ceki")   = true
6963
     * StringUtils.isAsciiPrintable("ab2c")   = true
6964
     * StringUtils.isAsciiPrintable("!ab-c~") = true
6965
     * StringUtils.isAsciiPrintable("\u0020") = true
6966
     * StringUtils.isAsciiPrintable("\u0021") = true
6967
     * StringUtils.isAsciiPrintable("\u007e") = true
6968
     * StringUtils.isAsciiPrintable("\u007f") = false
6969
     * StringUtils.isAsciiPrintable("Ceki G\u00fclc\u00fc") = false
6970
     * </pre>
6971
     *
6972
     * @param cs the CharSequence to check, may be null
6973
     * @return {@code true} if every character is in the range
6974
     *  32 thru 126
6975
     * @since 2.1
6976
     * @since 3.0 Changed signature from isAsciiPrintable(String) to isAsciiPrintable(CharSequence)
6977
     */
6978
    public static boolean isAsciiPrintable(final CharSequence cs) {
6979 1 1. isAsciiPrintable : negated conditional → KILLED
        if (cs == null) {
6980 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6981
        }
6982
        final int sz = cs.length();
6983 3 1. isAsciiPrintable : changed conditional boundary → KILLED
2. isAsciiPrintable : Changed increment from 1 to -1 → KILLED
3. isAsciiPrintable : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6984 1 1. isAsciiPrintable : negated conditional → KILLED
            if (CharUtils.isAsciiPrintable(cs.charAt(i)) == false) {
6985 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6986
            }
6987
        }
6988 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6989
    }
6990
6991
    /**
6992
     * <p>Checks if the CharSequence contains only Unicode digits.
6993
     * A decimal point is not a Unicode digit and returns false.</p>
6994
     *
6995
     * <p>{@code null} will return {@code false}.
6996
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6997
     *
6998
     * <p>Note that the method does not allow for a leading sign, either positive or negative.
6999
     * Also, if a String passes the numeric test, it may still generate a NumberFormatException
7000
     * when parsed by Integer.parseInt or Long.parseLong, e.g. if the value is outside the range
7001
     * for int or long respectively.</p>
7002
     *
7003
     * <pre>
7004
     * StringUtils.isNumeric(null)   = false
7005
     * StringUtils.isNumeric("")     = false
7006
     * StringUtils.isNumeric("  ")   = false
7007
     * StringUtils.isNumeric("123")  = true
7008
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7009
     * StringUtils.isNumeric("12 3") = false
7010
     * StringUtils.isNumeric("ab2c") = false
7011
     * StringUtils.isNumeric("12-3") = false
7012
     * StringUtils.isNumeric("12.3") = false
7013
     * StringUtils.isNumeric("-123") = false
7014
     * StringUtils.isNumeric("+123") = false
7015
     * </pre>
7016
     *
7017
     * @param cs  the CharSequence to check, may be null
7018
     * @return {@code true} if only contains digits, and is non-null
7019
     * @since 3.0 Changed signature from isNumeric(String) to isNumeric(CharSequence)
7020
     * @since 3.0 Changed "" to return false and not true
7021
     */
7022
    public static boolean isNumeric(final CharSequence cs) {
7023 1 1. isNumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
7024 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7025
        }
7026
        final int sz = cs.length();
7027 3 1. isNumeric : changed conditional boundary → KILLED
2. isNumeric : Changed increment from 1 to -1 → KILLED
3. isNumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7028 1 1. isNumeric : negated conditional → KILLED
            if (!Character.isDigit(cs.charAt(i))) {
7029 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7030
            }
7031
        }
7032 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7033
    }
7034
7035
    /**
7036
     * <p>Checks if the CharSequence contains only Unicode digits or space
7037
     * ({@code ' '}).
7038
     * A decimal point is not a Unicode digit and returns false.</p>
7039
     *
7040
     * <p>{@code null} will return {@code false}.
7041
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7042
     *
7043
     * <pre>
7044
     * StringUtils.isNumericSpace(null)   = false
7045
     * StringUtils.isNumericSpace("")     = true
7046
     * StringUtils.isNumericSpace("  ")   = true
7047
     * StringUtils.isNumericSpace("123")  = true
7048
     * StringUtils.isNumericSpace("12 3") = true
7049
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7050
     * StringUtils.isNumeric("\u0967\u0968 \u0969")  = true
7051
     * StringUtils.isNumericSpace("ab2c") = false
7052
     * StringUtils.isNumericSpace("12-3") = false
7053
     * StringUtils.isNumericSpace("12.3") = false
7054
     * </pre>
7055
     *
7056
     * @param cs  the CharSequence to check, may be null
7057
     * @return {@code true} if only contains digits or space,
7058
     *  and is non-null
7059
     * @since 3.0 Changed signature from isNumericSpace(String) to isNumericSpace(CharSequence)
7060
     */
7061
    public static boolean isNumericSpace(final CharSequence cs) {
7062 1 1. isNumericSpace : negated conditional → KILLED
        if (cs == null) {
7063 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7064
        }
7065
        final int sz = cs.length();
7066 3 1. isNumericSpace : changed conditional boundary → KILLED
2. isNumericSpace : Changed increment from 1 to -1 → KILLED
3. isNumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7067 2 1. isNumericSpace : negated conditional → KILLED
2. isNumericSpace : negated conditional → KILLED
            if (Character.isDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
7068 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7069
            }
7070
        }
7071 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7072
    }
7073
7074
    /**
7075
     * <p>Checks if the CharSequence contains only whitespace.</p>
7076
     *
7077
     * <p>{@code null} will return {@code false}.
7078
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7079
     *
7080
     * <pre>
7081
     * StringUtils.isWhitespace(null)   = false
7082
     * StringUtils.isWhitespace("")     = true
7083
     * StringUtils.isWhitespace("  ")   = true
7084
     * StringUtils.isWhitespace("abc")  = false
7085
     * StringUtils.isWhitespace("ab2c") = false
7086
     * StringUtils.isWhitespace("ab-c") = false
7087
     * </pre>
7088
     *
7089
     * @param cs  the CharSequence to check, may be null
7090
     * @return {@code true} if only contains whitespace, and is non-null
7091
     * @since 2.0
7092
     * @since 3.0 Changed signature from isWhitespace(String) to isWhitespace(CharSequence)
7093
     */
7094
    public static boolean isWhitespace(final CharSequence cs) {
7095 1 1. isWhitespace : negated conditional → KILLED
        if (cs == null) {
7096 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7097
        }
7098
        final int sz = cs.length();
7099 3 1. isWhitespace : changed conditional boundary → KILLED
2. isWhitespace : Changed increment from 1 to -1 → KILLED
3. isWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7100 1 1. isWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
7101 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7102
            }
7103
        }
7104 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7105
    }
7106
7107
    /**
7108
     * <p>Checks if the CharSequence contains only lowercase characters.</p>
7109
     *
7110
     * <p>{@code null} will return {@code false}.
7111
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7112
     *
7113
     * <pre>
7114
     * StringUtils.isAllLowerCase(null)   = false
7115
     * StringUtils.isAllLowerCase("")     = false
7116
     * StringUtils.isAllLowerCase("  ")   = false
7117
     * StringUtils.isAllLowerCase("abc")  = true
7118
     * StringUtils.isAllLowerCase("abC")  = false
7119
     * StringUtils.isAllLowerCase("ab c") = false
7120
     * StringUtils.isAllLowerCase("ab1c") = false
7121
     * StringUtils.isAllLowerCase("ab/c") = false
7122
     * </pre>
7123
     *
7124
     * @param cs  the CharSequence to check, may be null
7125
     * @return {@code true} if only contains lowercase characters, and is non-null
7126
     * @since 2.5
7127
     * @since 3.0 Changed signature from isAllLowerCase(String) to isAllLowerCase(CharSequence)
7128
     */
7129
    public static boolean isAllLowerCase(final CharSequence cs) {
7130 2 1. isAllLowerCase : negated conditional → KILLED
2. isAllLowerCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7131 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7132
        }
7133
        final int sz = cs.length();
7134 3 1. isAllLowerCase : changed conditional boundary → KILLED
2. isAllLowerCase : Changed increment from 1 to -1 → KILLED
3. isAllLowerCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7135 1 1. isAllLowerCase : negated conditional → KILLED
            if (Character.isLowerCase(cs.charAt(i)) == false) {
7136 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7137
            }
7138
        }
7139 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7140
    }
7141
7142
    /**
7143
     * <p>Checks if the CharSequence contains only uppercase characters.</p>
7144
     *
7145
     * <p>{@code null} will return {@code false}.
7146
     * An empty String (length()=0) will return {@code false}.</p>
7147
     *
7148
     * <pre>
7149
     * StringUtils.isAllUpperCase(null)   = false
7150
     * StringUtils.isAllUpperCase("")     = false
7151
     * StringUtils.isAllUpperCase("  ")   = false
7152
     * StringUtils.isAllUpperCase("ABC")  = true
7153
     * StringUtils.isAllUpperCase("aBC")  = false
7154
     * StringUtils.isAllUpperCase("A C")  = false
7155
     * StringUtils.isAllUpperCase("A1C")  = false
7156
     * StringUtils.isAllUpperCase("A/C")  = false
7157
     * </pre>
7158
     *
7159
     * @param cs the CharSequence to check, may be null
7160
     * @return {@code true} if only contains uppercase characters, and is non-null
7161
     * @since 2.5
7162
     * @since 3.0 Changed signature from isAllUpperCase(String) to isAllUpperCase(CharSequence)
7163
     */
7164
    public static boolean isAllUpperCase(final CharSequence cs) {
7165 2 1. isAllUpperCase : negated conditional → KILLED
2. isAllUpperCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7166 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7167
        }
7168
        final int sz = cs.length();
7169 3 1. isAllUpperCase : changed conditional boundary → KILLED
2. isAllUpperCase : Changed increment from 1 to -1 → KILLED
3. isAllUpperCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7170 1 1. isAllUpperCase : negated conditional → KILLED
            if (Character.isUpperCase(cs.charAt(i)) == false) {
7171 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7172
            }
7173
        }
7174 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7175
    }
7176
7177
    // Defaults
7178
    //-----------------------------------------------------------------------
7179
    /**
7180
     * <p>Returns either the passed in String,
7181
     * or if the String is {@code null}, an empty String ("").</p>
7182
     *
7183
     * <pre>
7184
     * StringUtils.defaultString(null)  = ""
7185
     * StringUtils.defaultString("")    = ""
7186
     * StringUtils.defaultString("bat") = "bat"
7187
     * </pre>
7188
     *
7189
     * @see ObjectUtils#toString(Object)
7190
     * @see String#valueOf(Object)
7191
     * @param str  the String to check, may be null
7192
     * @return the passed in String, or the empty String if it
7193
     *  was {@code null}
7194
     */
7195
    public static String defaultString(final String str) {
7196 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str;
7197
    }
7198
7199
    /**
7200
     * <p>Returns either the passed in String, or if the String is
7201
     * {@code null}, the value of {@code defaultStr}.</p>
7202
     *
7203
     * <pre>
7204
     * StringUtils.defaultString(null, "NULL")  = "NULL"
7205
     * StringUtils.defaultString("", "NULL")    = ""
7206
     * StringUtils.defaultString("bat", "NULL") = "bat"
7207
     * </pre>
7208
     *
7209
     * @see ObjectUtils#toString(Object,String)
7210
     * @see String#valueOf(Object)
7211
     * @param str  the String to check, may be null
7212
     * @param defaultStr  the default String to return
7213
     *  if the input is {@code null}, may be null
7214
     * @return the passed in String, or the default if it was {@code null}
7215
     */
7216
    public static String defaultString(final String str, final String defaultStr) {
7217 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? defaultStr : str;
7218
    }
7219
7220
    /**
7221
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7222
     * whitespace, empty ("") or {@code null}, the value of {@code defaultStr}.</p>
7223
     *
7224
     * <pre>
7225
     * StringUtils.defaultIfBlank(null, "NULL")  = "NULL"
7226
     * StringUtils.defaultIfBlank("", "NULL")    = "NULL"
7227
     * StringUtils.defaultIfBlank(" ", "NULL")   = "NULL"
7228
     * StringUtils.defaultIfBlank("bat", "NULL") = "bat"
7229
     * StringUtils.defaultIfBlank("", null)      = null
7230
     * </pre>
7231
     * @param <T> the specific kind of CharSequence
7232
     * @param str the CharSequence to check, may be null
7233
     * @param defaultStr  the default CharSequence to return
7234
     *  if the input is whitespace, empty ("") or {@code null}, may be null
7235
     * @return the passed in CharSequence, or the default
7236
     * @see StringUtils#defaultString(String, String)
7237
     */
7238
    public static <T extends CharSequence> T defaultIfBlank(final T str, final T defaultStr) {
7239 2 1. defaultIfBlank : negated conditional → KILLED
2. defaultIfBlank : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isBlank(str) ? defaultStr : str;
7240
    }
7241
7242
    /**
7243
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7244
     * empty or {@code null}, the value of {@code defaultStr}.</p>
7245
     *
7246
     * <pre>
7247
     * StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"
7248
     * StringUtils.defaultIfEmpty("", "NULL")    = "NULL"
7249
     * StringUtils.defaultIfEmpty(" ", "NULL")   = " "
7250
     * StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
7251
     * StringUtils.defaultIfEmpty("", null)      = null
7252
     * </pre>
7253
     * @param <T> the specific kind of CharSequence
7254
     * @param str  the CharSequence to check, may be null
7255
     * @param defaultStr  the default CharSequence to return
7256
     *  if the input is empty ("") or {@code null}, may be null
7257
     * @return the passed in CharSequence, or the default
7258
     * @see StringUtils#defaultString(String, String)
7259
     */
7260
    public static <T extends CharSequence> T defaultIfEmpty(final T str, final T defaultStr) {
7261 2 1. defaultIfEmpty : negated conditional → KILLED
2. defaultIfEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(str) ? defaultStr : str;
7262
    }
7263
7264
    // Rotating (circular shift)
7265
    //-----------------------------------------------------------------------
7266
    /**
7267
     * <p>Rotate (circular shift) a String of {@code shift} characters.</p>
7268
     * <ul>
7269
     *  <li>If {@code shift > 0}, right circular shift (ex : ABCDEF =&gt; FABCDE)</li>
7270
     *  <li>If {@code shift < 0}, left circular shift (ex : ABCDEF =&gt; BCDEFA)</li>
7271
     * </ul>
7272
     *
7273
     * <pre>
7274
     * StringUtils.rotate(null, *)        = null
7275
     * StringUtils.rotate("", *)          = ""
7276
     * StringUtils.rotate("abcdefg", 0)   = "abcdefg"
7277
     * StringUtils.rotate("abcdefg", 2)   = "fgabcde"
7278
     * StringUtils.rotate("abcdefg", -2)  = "cdefgab"
7279
     * StringUtils.rotate("abcdefg", 7)   = "abcdefg"
7280
     * StringUtils.rotate("abcdefg", -7)  = "abcdefg"
7281
     * StringUtils.rotate("abcdefg", 9)   = "fgabcde"
7282
     * StringUtils.rotate("abcdefg", -9)  = "cdefgab"
7283
     * </pre>
7284
     *
7285
     * @param str  the String to rotate, may be null
7286
     * @param shift  number of time to shift (positive : right shift, negative : left shift)
7287
     * @return the rotated String,
7288
     *          or the original String if {@code shift == 0},
7289
     *          or {@code null} if null String input
7290
     * @since 3.5
7291
     */
7292
    public static String rotate(final String str, final int shift) {
7293 1 1. rotate : negated conditional → KILLED
        if (str == null) {
7294 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7295
        }
7296
7297
        final int strLen = str.length();
7298 4 1. rotate : Replaced integer modulus with multiplication → SURVIVED
2. rotate : negated conditional → KILLED
3. rotate : negated conditional → KILLED
4. rotate : negated conditional → KILLED
        if (shift == 0 || strLen == 0 || shift % strLen == 0) {
7299 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7300
        }
7301
7302
        final StringBuilder builder = new StringBuilder(strLen);
7303 2 1. rotate : removed negation → KILLED
2. rotate : Replaced integer modulus with multiplication → KILLED
        final int offset = - (shift % strLen);
7304
        builder.append(substring(str, offset));
7305
        builder.append(substring(str, 0, offset));
7306 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7307
    }
7308
7309
    // Reversing
7310
    //-----------------------------------------------------------------------
7311
    /**
7312
     * <p>Reverses a String as per {@link StringBuilder#reverse()}.</p>
7313
     *
7314
     * <p>A {@code null} String returns {@code null}.</p>
7315
     *
7316
     * <pre>
7317
     * StringUtils.reverse(null)  = null
7318
     * StringUtils.reverse("")    = ""
7319
     * StringUtils.reverse("bat") = "tab"
7320
     * </pre>
7321
     *
7322
     * @param str  the String to reverse, may be null
7323
     * @return the reversed String, {@code null} if null String input
7324
     */
7325
    public static String reverse(final String str) {
7326 1 1. reverse : negated conditional → KILLED
        if (str == null) {
7327 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7328
        }
7329 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(str).reverse().toString();
7330
    }
7331
7332
    /**
7333
     * <p>Reverses a String that is delimited by a specific character.</p>
7334
     *
7335
     * <p>The Strings between the delimiters are not reversed.
7336
     * Thus java.lang.String becomes String.lang.java (if the delimiter
7337
     * is {@code '.'}).</p>
7338
     *
7339
     * <pre>
7340
     * StringUtils.reverseDelimited(null, *)      = null
7341
     * StringUtils.reverseDelimited("", *)        = ""
7342
     * StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c"
7343
     * StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"
7344
     * </pre>
7345
     *
7346
     * @param str  the String to reverse, may be null
7347
     * @param separatorChar  the separator character to use
7348
     * @return the reversed String, {@code null} if null String input
7349
     * @since 2.0
7350
     */
7351
    public static String reverseDelimited(final String str, final char separatorChar) {
7352 1 1. reverseDelimited : negated conditional → KILLED
        if (str == null) {
7353 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7354
        }
7355
        // could implement manually, but simple way is to reuse other,
7356
        // probably slower, methods.
7357
        final String[] strs = split(str, separatorChar);
7358 1 1. reverseDelimited : removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED
        ArrayUtils.reverse(strs);
7359 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(strs, separatorChar);
7360
    }
7361
7362
    // Abbreviating
7363
    //-----------------------------------------------------------------------
7364
    /**
7365
     * <p>Abbreviates a String using ellipses. This will turn
7366
     * "Now is the time for all good men" into "Now is the time for..."</p>
7367
     *
7368
     * <p>Specifically:</p>
7369
     * <ul>
7370
     *   <li>If the number of characters in {@code str} is less than or equal to 
7371
     *       {@code maxWidth}, return {@code str}.</li>
7372
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + "...")}.</li>
7373
     *   <li>If {@code maxWidth} is less than {@code 4}, throw an
7374
     *       {@code IllegalArgumentException}.</li>
7375
     *   <li>In no case will it return a String of length greater than
7376
     *       {@code maxWidth}.</li>
7377
     * </ul>
7378
     *
7379
     * <pre>
7380
     * StringUtils.abbreviate(null, *)      = null
7381
     * StringUtils.abbreviate("", 4)        = ""
7382
     * StringUtils.abbreviate("abcdefg", 6) = "abc..."
7383
     * StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
7384
     * StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
7385
     * StringUtils.abbreviate("abcdefg", 4) = "a..."
7386
     * StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
7387
     * </pre>
7388
     *
7389
     * @param str  the String to check, may be null
7390
     * @param maxWidth  maximum length of result String, must be at least 4
7391
     * @return abbreviated String, {@code null} if null String input
7392
     * @throws IllegalArgumentException if the width is too small
7393
     * @since 2.0
7394
     */
7395
    public static String abbreviate(final String str, final int maxWidth) {
7396
        final String defaultAbbrevMarker = "...";
7397 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, 0, maxWidth);
7398
    }
7399
7400
    /**
7401
     * <p>Abbreviates a String using ellipses. This will turn
7402
     * "Now is the time for all good men" into "...is the time for..."</p>
7403
     *
7404
     * <p>Works like {@code abbreviate(String, int)}, but allows you to specify
7405
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7406
     * be the leftmost character in the result, or the first character following the
7407
     * ellipses, but it will appear somewhere in the result.
7408
     *
7409
     * <p>In no case will it return a String of length greater than
7410
     * {@code maxWidth}.</p>
7411
     *
7412
     * <pre>
7413
     * StringUtils.abbreviate(null, *, *)                = null
7414
     * StringUtils.abbreviate("", 0, 4)                  = ""
7415
     * StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
7416
     * StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
7417
     * StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
7418
     * StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
7419
     * StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
7420
     * StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
7421
     * StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
7422
     * StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
7423
     * StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
7424
     * StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
7425
     * StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
7426
     * </pre>
7427
     *
7428
     * @param str  the String to check, may be null
7429
     * @param offset  left edge of source String
7430
     * @param maxWidth  maximum length of result String, must be at least 4
7431
     * @return abbreviated String, {@code null} if null String input
7432
     * @throws IllegalArgumentException if the width is too small
7433
     * @since 2.0
7434
     */
7435
    public static String abbreviate(final String str, int offset, final int maxWidth) {
7436
        final String defaultAbbrevMarker = "...";
7437 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, offset, maxWidth);
7438
    }
7439
7440
    /**
7441
     * <p>Abbreviates a String using another given String as replacement marker. This will turn
7442
     * "Now is the time for all good men" into "Now is the time for..." if "..." was defined
7443
     * as the replacement marker.</p>
7444
     *
7445
     * <p>Specifically:</p>
7446
     * <ul>
7447
     *   <li>If the number of characters in {@code str} is less than or equal to 
7448
     *       {@code maxWidth}, return {@code str}.</li>
7449
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-abbrevMarker.length) + abbrevMarker)}.</li>
7450
     *   <li>If {@code maxWidth} is less than {@code abbrevMarker.length + 1}, throw an
7451
     *       {@code IllegalArgumentException}.</li>
7452
     *   <li>In no case will it return a String of length greater than
7453
     *       {@code maxWidth}.</li>
7454
     * </ul>
7455
     *
7456
     * <pre>
7457
     * StringUtils.abbreviate(null, "...", *)      = null
7458
     * StringUtils.abbreviate("abcdefg", null, *)  = "abcdefg"
7459
     * StringUtils.abbreviate("", "...", 4)        = ""
7460
     * StringUtils.abbreviate("abcdefg", ".", 5)   = "abcd."
7461
     * StringUtils.abbreviate("abcdefg", ".", 7)   = "abcdefg"
7462
     * StringUtils.abbreviate("abcdefg", ".", 8)   = "abcdefg"
7463
     * StringUtils.abbreviate("abcdefg", "..", 4)  = "ab.."
7464
     * StringUtils.abbreviate("abcdefg", "..", 3)  = "a.."
7465
     * StringUtils.abbreviate("abcdefg", "..", 2)  = IllegalArgumentException
7466
     * StringUtils.abbreviate("abcdefg", "...", 3) = IllegalArgumentException
7467
     * </pre>
7468
     *
7469
     * @param str  the String to check, may be null
7470
     * @param abbrevMarker  the String used as replacement marker
7471
     * @param maxWidth  maximum length of result String, must be at least {@code abbrevMarker.length + 1}
7472
     * @return abbreviated String, {@code null} if null String input
7473
     * @throws IllegalArgumentException if the width is too small
7474
     * @since 3.5
7475
     */
7476
    public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {
7477 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, abbrevMarker, 0, maxWidth);
7478
    }
7479
7480
    /**
7481
     * <p>Abbreviates a String using a given replacement marker. This will turn
7482
     * "Now is the time for all good men" into "...is the time for..." if "..." was defined
7483
     * as the replacement marker.</p>
7484
     *
7485
     * <p>Works like {@code abbreviate(String, String, int)}, but allows you to specify
7486
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7487
     * be the leftmost character in the result, or the first character following the
7488
     * replacement marker, but it will appear somewhere in the result.
7489
     *
7490
     * <p>In no case will it return a String of length greater than {@code maxWidth}.</p>
7491
     *
7492
     * <pre>
7493
     * StringUtils.abbreviate(null, null, *, *)                 = null
7494
     * StringUtils.abbreviate("abcdefghijklmno", null, *, *)    = "abcdefghijklmno"
7495
     * StringUtils.abbreviate("", "...", 0, 4)                  = ""
7496
     * StringUtils.abbreviate("abcdefghijklmno", "---", -1, 10) = "abcdefg---"
7497
     * StringUtils.abbreviate("abcdefghijklmno", ",", 0, 10)    = "abcdefghi,"
7498
     * StringUtils.abbreviate("abcdefghijklmno", ",", 1, 10)    = "abcdefghi,"
7499
     * StringUtils.abbreviate("abcdefghijklmno", ",", 2, 10)    = "abcdefghi,"
7500
     * StringUtils.abbreviate("abcdefghijklmno", "::", 4, 10)   = "::efghij::"
7501
     * StringUtils.abbreviate("abcdefghijklmno", "...", 6, 10)  = "...ghij..."
7502
     * StringUtils.abbreviate("abcdefghijklmno", "*", 9, 10)    = "*ghijklmno"
7503
     * StringUtils.abbreviate("abcdefghijklmno", "'", 10, 10)   = "'ghijklmno"
7504
     * StringUtils.abbreviate("abcdefghijklmno", "!", 12, 10)   = "!ghijklmno"
7505
     * StringUtils.abbreviate("abcdefghij", "abra", 0, 4)       = IllegalArgumentException
7506
     * StringUtils.abbreviate("abcdefghij", "...", 5, 6)        = IllegalArgumentException
7507
     * </pre>
7508
     *
7509
     * @param str  the String to check, may be null
7510
     * @param abbrevMarker  the String used as replacement marker
7511
     * @param offset  left edge of source String
7512
     * @param maxWidth  maximum length of result String, must be at least 4
7513
     * @return abbreviated String, {@code null} if null String input
7514
     * @throws IllegalArgumentException if the width is too small
7515
     * @since 3.5
7516
     */
7517
    public static String abbreviate(final String str, final String abbrevMarker, int offset, final int maxWidth) {
7518 2 1. abbreviate : negated conditional → KILLED
2. abbreviate : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(abbrevMarker)) {
7519 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7520
        }
7521
7522
        final int abbrevMarkerLength = abbrevMarker.length();
7523 1 1. abbreviate : Replaced integer addition with subtraction → KILLED
        final int minAbbrevWidth = abbrevMarkerLength + 1;
7524 2 1. abbreviate : Replaced integer addition with subtraction → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
        final int minAbbrevWidthOffset = abbrevMarkerLength + abbrevMarkerLength + 1;
7525
7526 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidth) {
7527
            throw new IllegalArgumentException(String.format("Minimum abbreviation width is %d", minAbbrevWidth));
7528
        }
7529 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (str.length() <= maxWidth) {
7530 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7531
        }
7532 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (offset > str.length()) {
7533
            offset = str.length();
7534
        }
7535 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (str.length() - offset < maxWidth - abbrevMarkerLength) {
7536 2 1. abbreviate : Replaced integer subtraction with addition → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → KILLED
            offset = str.length() - (maxWidth - abbrevMarkerLength);
7537
        }
7538 3 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : Replaced integer addition with subtraction → KILLED
3. abbreviate : negated conditional → KILLED
        if (offset <= abbrevMarkerLength+1) {
7539 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, maxWidth - abbrevMarkerLength) + abbrevMarker;
7540
        }
7541 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidthOffset) {
7542
            throw new IllegalArgumentException(String.format("Minimum abbreviation width with offset is %d", minAbbrevWidthOffset));
7543
        }
7544 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (offset + maxWidth - abbrevMarkerLength < str.length()) {
7545 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return abbrevMarker + abbreviate(str.substring(offset), abbrevMarker, maxWidth - abbrevMarkerLength);
7546
        }
7547 3 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : Replaced integer subtraction with addition → KILLED
3. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbrevMarker + str.substring(str.length() - (maxWidth - abbrevMarkerLength));
7548
    }
7549
7550
    /**
7551
     * <p>Abbreviates a String to the length passed, replacing the middle characters with the supplied
7552
     * replacement String.</p>
7553
     *
7554
     * <p>This abbreviation only occurs if the following criteria is met:</p>
7555
     * <ul>
7556
     * <li>Neither the String for abbreviation nor the replacement String are null or empty </li>
7557
     * <li>The length to truncate to is less than the length of the supplied String</li>
7558
     * <li>The length to truncate to is greater than 0</li>
7559
     * <li>The abbreviated String will have enough room for the length supplied replacement String
7560
     * and the first and last characters of the supplied String for abbreviation</li>
7561
     * </ul>
7562
     * <p>Otherwise, the returned String will be the same as the supplied String for abbreviation.
7563
     * </p>
7564
     *
7565
     * <pre>
7566
     * StringUtils.abbreviateMiddle(null, null, 0)      = null
7567
     * StringUtils.abbreviateMiddle("abc", null, 0)      = "abc"
7568
     * StringUtils.abbreviateMiddle("abc", ".", 0)      = "abc"
7569
     * StringUtils.abbreviateMiddle("abc", ".", 3)      = "abc"
7570
     * StringUtils.abbreviateMiddle("abcdef", ".", 4)     = "ab.f"
7571
     * </pre>
7572
     *
7573
     * @param str  the String to abbreviate, may be null
7574
     * @param middle the String to replace the middle characters with, may be null
7575
     * @param length the length to abbreviate {@code str} to.
7576
     * @return the abbreviated String if the above criteria is met, or the original String supplied for abbreviation.
7577
     * @since 2.5
7578
     */
7579
    public static String abbreviateMiddle(final String str, final String middle, final int length) {
7580 2 1. abbreviateMiddle : negated conditional → KILLED
2. abbreviateMiddle : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(middle)) {
7581 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7582
        }
7583
7584 5 1. abbreviateMiddle : changed conditional boundary → KILLED
2. abbreviateMiddle : changed conditional boundary → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
4. abbreviateMiddle : negated conditional → KILLED
5. abbreviateMiddle : negated conditional → KILLED
        if (length >= str.length() || length < middle.length()+2) {
7585 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7586
        }
7587
7588 1 1. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int targetSting = length-middle.length();
7589 3 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer modulus with multiplication → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
        final int startOffset = targetSting/2+targetSting%2;
7590 2 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int endOffset = str.length()-targetSting/2;
7591
7592
        final StringBuilder builder = new StringBuilder(length);
7593
        builder.append(str.substring(0,startOffset));
7594
        builder.append(middle);
7595
        builder.append(str.substring(endOffset));
7596
7597 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7598
    }
7599
7600
    // Difference
7601
    //-----------------------------------------------------------------------
7602
    /**
7603
     * <p>Compares two Strings, and returns the portion where they differ.
7604
     * More precisely, return the remainder of the second String,
7605
     * starting from where it's different from the first. This means that
7606
     * the difference between "abc" and "ab" is the empty String and not "c". </p>
7607
     *
7608
     * <p>For example,
7609
     * {@code difference("i am a machine", "i am a robot") -> "robot"}.</p>
7610
     *
7611
     * <pre>
7612
     * StringUtils.difference(null, null) = null
7613
     * StringUtils.difference("", "") = ""
7614
     * StringUtils.difference("", "abc") = "abc"
7615
     * StringUtils.difference("abc", "") = ""
7616
     * StringUtils.difference("abc", "abc") = ""
7617
     * StringUtils.difference("abc", "ab") = ""
7618
     * StringUtils.difference("ab", "abxyz") = "xyz"
7619
     * StringUtils.difference("abcde", "abxyz") = "xyz"
7620
     * StringUtils.difference("abcde", "xyz") = "xyz"
7621
     * </pre>
7622
     *
7623
     * @param str1  the first String, may be null
7624
     * @param str2  the second String, may be null
7625
     * @return the portion of str2 where it differs from str1; returns the
7626
     * empty String if they are equal
7627
     * @see #indexOfDifference(CharSequence,CharSequence)
7628
     * @since 2.0
7629
     */
7630
    public static String difference(final String str1, final String str2) {
7631 1 1. difference : negated conditional → KILLED
        if (str1 == null) {
7632 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str2;
7633
        }
7634 1 1. difference : negated conditional → KILLED
        if (str2 == null) {
7635 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str1;
7636
        }
7637
        final int at = indexOfDifference(str1, str2);
7638 1 1. difference : negated conditional → KILLED
        if (at == INDEX_NOT_FOUND) {
7639 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7640
        }
7641 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str2.substring(at);
7642
    }
7643
7644
    /**
7645
     * <p>Compares two CharSequences, and returns the index at which the
7646
     * CharSequences begin to differ.</p>
7647
     *
7648
     * <p>For example,
7649
     * {@code indexOfDifference("i am a machine", "i am a robot") -> 7}</p>
7650
     *
7651
     * <pre>
7652
     * StringUtils.indexOfDifference(null, null) = -1
7653
     * StringUtils.indexOfDifference("", "") = -1
7654
     * StringUtils.indexOfDifference("", "abc") = 0
7655
     * StringUtils.indexOfDifference("abc", "") = 0
7656
     * StringUtils.indexOfDifference("abc", "abc") = -1
7657
     * StringUtils.indexOfDifference("ab", "abxyz") = 2
7658
     * StringUtils.indexOfDifference("abcde", "abxyz") = 2
7659
     * StringUtils.indexOfDifference("abcde", "xyz") = 0
7660
     * </pre>
7661
     *
7662
     * @param cs1  the first CharSequence, may be null
7663
     * @param cs2  the second CharSequence, may be null
7664
     * @return the index where cs1 and cs2 begin to differ; -1 if they are equal
7665
     * @since 2.0
7666
     * @since 3.0 Changed signature from indexOfDifference(String, String) to
7667
     * indexOfDifference(CharSequence, CharSequence)
7668
     */
7669
    public static int indexOfDifference(final CharSequence cs1, final CharSequence cs2) {
7670 1 1. indexOfDifference : negated conditional → KILLED
        if (cs1 == cs2) {
7671 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7672
        }
7673 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
7674 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7675
        }
7676
        int i;
7677 5 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : changed conditional boundary → KILLED
3. indexOfDifference : Changed increment from 1 to -1 → KILLED
4. indexOfDifference : negated conditional → KILLED
5. indexOfDifference : negated conditional → KILLED
        for (i = 0; i < cs1.length() && i < cs2.length(); ++i) {
7678 1 1. indexOfDifference : negated conditional → KILLED
            if (cs1.charAt(i) != cs2.charAt(i)) {
7679
                break;
7680
            }
7681
        }
7682 4 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : changed conditional boundary → SURVIVED
3. indexOfDifference : negated conditional → KILLED
4. indexOfDifference : negated conditional → KILLED
        if (i < cs2.length() || i < cs1.length()) {
7683 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
7684
        }
7685 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return INDEX_NOT_FOUND;
7686
    }
7687
7688
    /**
7689
     * <p>Compares all CharSequences in an array and returns the index at which the
7690
     * CharSequences begin to differ.</p>
7691
     *
7692
     * <p>For example,
7693
     * <code>indexOfDifference(new String[] {"i am a machine", "i am a robot"}) -&gt; 7</code></p>
7694
     *
7695
     * <pre>
7696
     * StringUtils.indexOfDifference(null) = -1
7697
     * StringUtils.indexOfDifference(new String[] {}) = -1
7698
     * StringUtils.indexOfDifference(new String[] {"abc"}) = -1
7699
     * StringUtils.indexOfDifference(new String[] {null, null}) = -1
7700
     * StringUtils.indexOfDifference(new String[] {"", ""}) = -1
7701
     * StringUtils.indexOfDifference(new String[] {"", null}) = 0
7702
     * StringUtils.indexOfDifference(new String[] {"abc", null, null}) = 0
7703
     * StringUtils.indexOfDifference(new String[] {null, null, "abc"}) = 0
7704
     * StringUtils.indexOfDifference(new String[] {"", "abc"}) = 0
7705
     * StringUtils.indexOfDifference(new String[] {"abc", ""}) = 0
7706
     * StringUtils.indexOfDifference(new String[] {"abc", "abc"}) = -1
7707
     * StringUtils.indexOfDifference(new String[] {"abc", "a"}) = 1
7708
     * StringUtils.indexOfDifference(new String[] {"ab", "abxyz"}) = 2
7709
     * StringUtils.indexOfDifference(new String[] {"abcde", "abxyz"}) = 2
7710
     * StringUtils.indexOfDifference(new String[] {"abcde", "xyz"}) = 0
7711
     * StringUtils.indexOfDifference(new String[] {"xyz", "abcde"}) = 0
7712
     * StringUtils.indexOfDifference(new String[] {"i am a machine", "i am a robot"}) = 7
7713
     * </pre>
7714
     *
7715
     * @param css  array of CharSequences, entries may be null
7716
     * @return the index where the strings begin to differ; -1 if they are all equal
7717
     * @since 2.4
7718
     * @since 3.0 Changed signature from indexOfDifference(String...) to indexOfDifference(CharSequence...)
7719
     */
7720
    public static int indexOfDifference(final CharSequence... css) {
7721 3 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (css == null || css.length <= 1) {
7722 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7723
        }
7724
        boolean anyStringNull = false;
7725
        boolean allStringsNull = true;
7726
        final int arrayLen = css.length;
7727
        int shortestStrLen = Integer.MAX_VALUE;
7728
        int longestStrLen = 0;
7729
7730
        // find the min and max string lengths; this avoids checking to make
7731
        // sure we are not exceeding the length of the string each time through
7732
        // the bottom loop.
7733 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (int i = 0; i < arrayLen; i++) {
7734 1 1. indexOfDifference : negated conditional → KILLED
            if (css[i] == null) {
7735
                anyStringNull = true;
7736
                shortestStrLen = 0;
7737
            } else {
7738
                allStringsNull = false;
7739
                shortestStrLen = Math.min(css[i].length(), shortestStrLen);
7740
                longestStrLen = Math.max(css[i].length(), longestStrLen);
7741
            }
7742
        }
7743
7744
        // handle lists containing all nulls or all empty strings
7745 3 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (allStringsNull || longestStrLen == 0 && !anyStringNull) {
7746 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7747
        }
7748
7749
        // handle lists containing some nulls or some empty strings
7750 1 1. indexOfDifference : negated conditional → KILLED
        if (shortestStrLen == 0) {
7751 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7752
        }
7753
7754
        // find the position with the first difference across all strings
7755
        int firstDiff = -1;
7756 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (int stringPos = 0; stringPos < shortestStrLen; stringPos++) {
7757
            final char comparisonChar = css[0].charAt(stringPos);
7758 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
            for (int arrayPos = 1; arrayPos < arrayLen; arrayPos++) {
7759 1 1. indexOfDifference : negated conditional → KILLED
                if (css[arrayPos].charAt(stringPos) != comparisonChar) {
7760
                    firstDiff = stringPos;
7761
                    break;
7762
                }
7763
            }
7764 1 1. indexOfDifference : negated conditional → KILLED
            if (firstDiff != -1) {
7765
                break;
7766
            }
7767
        }
7768
7769 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (firstDiff == -1 && shortestStrLen != longestStrLen) {
7770
            // we compared all of the characters up to the length of the
7771
            // shortest string and didn't find a match, but the string lengths
7772
            // vary, so return the length of the shortest string.
7773 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return shortestStrLen;
7774
        }
7775 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return firstDiff;
7776
    }
7777
7778
    /**
7779
     * <p>Compares all Strings in an array and returns the initial sequence of
7780
     * characters that is common to all of them.</p>
7781
     *
7782
     * <p>For example,
7783
     * <code>getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) -&gt; "i am a "</code></p>
7784
     *
7785
     * <pre>
7786
     * StringUtils.getCommonPrefix(null) = ""
7787
     * StringUtils.getCommonPrefix(new String[] {}) = ""
7788
     * StringUtils.getCommonPrefix(new String[] {"abc"}) = "abc"
7789
     * StringUtils.getCommonPrefix(new String[] {null, null}) = ""
7790
     * StringUtils.getCommonPrefix(new String[] {"", ""}) = ""
7791
     * StringUtils.getCommonPrefix(new String[] {"", null}) = ""
7792
     * StringUtils.getCommonPrefix(new String[] {"abc", null, null}) = ""
7793
     * StringUtils.getCommonPrefix(new String[] {null, null, "abc"}) = ""
7794
     * StringUtils.getCommonPrefix(new String[] {"", "abc"}) = ""
7795
     * StringUtils.getCommonPrefix(new String[] {"abc", ""}) = ""
7796
     * StringUtils.getCommonPrefix(new String[] {"abc", "abc"}) = "abc"
7797
     * StringUtils.getCommonPrefix(new String[] {"abc", "a"}) = "a"
7798
     * StringUtils.getCommonPrefix(new String[] {"ab", "abxyz"}) = "ab"
7799
     * StringUtils.getCommonPrefix(new String[] {"abcde", "abxyz"}) = "ab"
7800
     * StringUtils.getCommonPrefix(new String[] {"abcde", "xyz"}) = ""
7801
     * StringUtils.getCommonPrefix(new String[] {"xyz", "abcde"}) = ""
7802
     * StringUtils.getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) = "i am a "
7803
     * </pre>
7804
     *
7805
     * @param strs  array of String objects, entries may be null
7806
     * @return the initial sequence of characters that are common to all Strings
7807
     * in the array; empty String if the array is null, the elements are all null
7808
     * or if there is no common prefix.
7809
     * @since 2.4
7810
     */
7811
    public static String getCommonPrefix(final String... strs) {
7812 2 1. getCommonPrefix : negated conditional → KILLED
2. getCommonPrefix : negated conditional → KILLED
        if (strs == null || strs.length == 0) {
7813 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7814
        }
7815
        final int smallestIndexOfDiff = indexOfDifference(strs);
7816 1 1. getCommonPrefix : negated conditional → KILLED
        if (smallestIndexOfDiff == INDEX_NOT_FOUND) {
7817
            // all strings were identical
7818 1 1. getCommonPrefix : negated conditional → KILLED
            if (strs[0] == null) {
7819 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
7820
            }
7821 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0];
7822 1 1. getCommonPrefix : negated conditional → KILLED
        } else if (smallestIndexOfDiff == 0) {
7823
            // there were no common initial characters
7824 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7825
        } else {
7826
            // we found a common initial character sequence
7827 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0].substring(0, smallestIndexOfDiff);
7828
        }
7829
    }
7830
7831
    // Misc
7832
    //-----------------------------------------------------------------------
7833
    /**
7834
     * <p>Find the Levenshtein distance between two Strings.</p>
7835
     *
7836
     * <p>This is the number of changes needed to change one String into
7837
     * another, where each change is a single character modification (deletion,
7838
     * insertion or substitution).</p>
7839
     *
7840
     * <p>The implementation uses a single-dimensional array of length s.length() + 1. See 
7841
     * <a href="http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html">
7842
     * http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html</a> for details.</p>
7843
     *
7844
     * <pre>
7845
     * StringUtils.getLevenshteinDistance(null, *)             = IllegalArgumentException
7846
     * StringUtils.getLevenshteinDistance(*, null)             = IllegalArgumentException
7847
     * StringUtils.getLevenshteinDistance("","")               = 0
7848
     * StringUtils.getLevenshteinDistance("","a")              = 1
7849
     * StringUtils.getLevenshteinDistance("aaapppp", "")       = 7
7850
     * StringUtils.getLevenshteinDistance("frog", "fog")       = 1
7851
     * StringUtils.getLevenshteinDistance("fly", "ant")        = 3
7852
     * StringUtils.getLevenshteinDistance("elephant", "hippo") = 7
7853
     * StringUtils.getLevenshteinDistance("hippo", "elephant") = 7
7854
     * StringUtils.getLevenshteinDistance("hippo", "zzzzzzzz") = 8
7855
     * StringUtils.getLevenshteinDistance("hello", "hallo")    = 1
7856
     * </pre>
7857
     *
7858
     * @param s  the first String, must not be null
7859
     * @param t  the second String, must not be null
7860
     * @return result distance
7861
     * @throws IllegalArgumentException if either String input {@code null}
7862
     * @since 3.0 Changed signature from getLevenshteinDistance(String, String) to
7863
     * getLevenshteinDistance(CharSequence, CharSequence)
7864
     */
7865
    public static int getLevenshteinDistance(CharSequence s, CharSequence t) {
7866 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7867
            throw new IllegalArgumentException("Strings must not be null");
7868
        }
7869
7870
        int n = s.length();
7871
        int m = t.length();
7872
7873 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
7874 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m;
7875 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
7876 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n;
7877
        }
7878
7879 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
7880
            // swap the input strings to consume less memory
7881
            final CharSequence tmp = s;
7882
            s = t;
7883
            t = tmp;
7884
            n = m;
7885
            m = t.length();
7886
        }
7887
7888 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int p[] = new int[n + 1];
7889
        // indexes into strings s and t
7890
        int i; // iterates through s
7891
        int j; // iterates through t
7892
        int upper_left;
7893
        int upper;
7894
7895
        char t_j; // jth character of t
7896
        int cost;
7897
7898 3 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (i = 0; i <= n; i++) {
7899
            p[i] = i;
7900
        }
7901
7902 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (j = 1; j <= m; j++) {
7903
            upper_left = p[0];
7904 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            t_j = t.charAt(j - 1);
7905
            p[0] = j;
7906
7907 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (i = 1; i <= n; i++) {
7908
                upper = p[i];
7909 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                cost = s.charAt(i - 1) == t_j ? 0 : 1;
7910
                // minimum of cell to the left+1, to the top+1, diagonally left and up +cost
7911 4 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                p[i] = Math.min(Math.min(p[i - 1] + 1, p[i] + 1), upper_left + cost);
7912
                upper_left = upper;
7913
            }
7914
        }
7915
7916 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return p[n];
7917
    }
7918
7919
    /**
7920
     * <p>Find the Levenshtein distance between two Strings if it's less than or equal to a given
7921
     * threshold.</p>
7922
     *
7923
     * <p>This is the number of changes needed to change one String into
7924
     * another, where each change is a single character modification (deletion,
7925
     * insertion or substitution).</p>
7926
     *
7927
     * <p>This implementation follows from Algorithms on Strings, Trees and Sequences by Dan Gusfield
7928
     * and Chas Emerick's implementation of the Levenshtein distance algorithm from
7929
     * <a href="http://www.merriampark.com/ld.htm">http://www.merriampark.com/ld.htm</a></p>
7930
     *
7931
     * <pre>
7932
     * StringUtils.getLevenshteinDistance(null, *, *)             = IllegalArgumentException
7933
     * StringUtils.getLevenshteinDistance(*, null, *)             = IllegalArgumentException
7934
     * StringUtils.getLevenshteinDistance(*, *, -1)               = IllegalArgumentException
7935
     * StringUtils.getLevenshteinDistance("","", 0)               = 0
7936
     * StringUtils.getLevenshteinDistance("aaapppp", "", 8)       = 7
7937
     * StringUtils.getLevenshteinDistance("aaapppp", "", 7)       = 7
7938
     * StringUtils.getLevenshteinDistance("aaapppp", "", 6))      = -1
7939
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 7) = 7
7940
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 6) = -1
7941
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 7) = 7
7942
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 6) = -1
7943
     * </pre>
7944
     *
7945
     * @param s  the first String, must not be null
7946
     * @param t  the second String, must not be null
7947
     * @param threshold the target threshold, must not be negative
7948
     * @return result distance, or {@code -1} if the distance would be greater than the threshold
7949
     * @throws IllegalArgumentException if either String input {@code null} or negative threshold
7950
     */
7951
    public static int getLevenshteinDistance(CharSequence s, CharSequence t, final int threshold) {
7952 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7953
            throw new IllegalArgumentException("Strings must not be null");
7954
        }
7955 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (threshold < 0) {
7956
            throw new IllegalArgumentException("Threshold must not be negative");
7957
        }
7958
7959
        /*
7960
        This implementation only computes the distance if it's less than or equal to the
7961
        threshold value, returning -1 if it's greater.  The advantage is performance: unbounded
7962
        distance is O(nm), but a bound of k allows us to reduce it to O(km) time by only
7963
        computing a diagonal stripe of width 2k + 1 of the cost table.
7964
        It is also possible to use this to compute the unbounded Levenshtein distance by starting
7965
        the threshold at 1 and doubling each time until the distance is found; this is O(dm), where
7966
        d is the distance.
7967
7968
        One subtlety comes from needing to ignore entries on the border of our stripe
7969
        eg.
7970
        p[] = |#|#|#|*
7971
        d[] =  *|#|#|#|
7972
        We must ignore the entry to the left of the leftmost member
7973
        We must ignore the entry above the rightmost member
7974
7975
        Another subtlety comes from our stripe running off the matrix if the strings aren't
7976
        of the same size.  Since string s is always swapped to be the shorter of the two,
7977
        the stripe will always run off to the upper right instead of the lower left of the matrix.
7978
7979
        As a concrete example, suppose s is of length 5, t is of length 7, and our threshold is 1.
7980
        In this case we're going to walk a stripe of length 3.  The matrix would look like so:
7981
7982
           1 2 3 4 5
7983
        1 |#|#| | | |
7984
        2 |#|#|#| | |
7985
        3 | |#|#|#| |
7986
        4 | | |#|#|#|
7987
        5 | | | |#|#|
7988
        6 | | | | |#|
7989
        7 | | | | | |
7990
7991
        Note how the stripe leads off the table as there is no possible way to turn a string of length 5
7992
        into one of length 7 in edit distance of 1.
7993
7994
        Additionally, this implementation decreases memory usage by using two
7995
        single-dimensional arrays and swapping them back and forth instead of allocating
7996
        an entire n by m matrix.  This requires a few minor changes, such as immediately returning
7997
        when it's detected that the stripe has run off the matrix and initially filling the arrays with
7998
        large values so that entries we don't compute are ignored.
7999
8000
        See Algorithms on Strings, Trees and Sequences by Dan Gusfield for some discussion.
8001
         */
8002
8003
        int n = s.length(); // length of s
8004
        int m = t.length(); // length of t
8005
8006
        // if one string is empty, the edit distance is necessarily the length of the other
8007 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
8008 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m <= threshold ? m : -1;
8009 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
8010 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n <= threshold ? n : -1;
8011
        }
8012
        // no need to calculate the distance if the length difference is greater than the threshold
8013 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        else if (Math.abs(n - m) > threshold) {
8014 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return -1;
8015
        }
8016
8017 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
8018
            // swap the two strings to consume less memory
8019
            final CharSequence tmp = s;
8020
            s = t;
8021
            t = tmp;
8022
            n = m;
8023
            m = t.length();
8024
        }
8025
8026 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int p[] = new int[n + 1]; // 'previous' cost array, horizontally
8027 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int d[] = new int[n + 1]; // cost array, horizontally
8028
        int _d[]; // placeholder to assist in swapping p and d
8029
8030
        // fill in starting table values
8031 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int boundary = Math.min(n, threshold) + 1;
8032 3 1. getLevenshteinDistance : negated conditional → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → KILLED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < boundary; i++) {
8033
            p[i] = i;
8034
        }
8035
        // these fills ensure that the value above the rightmost entry of our
8036
        // stripe will be ignored in following loop iterations
8037 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(p, boundary, p.length, Integer.MAX_VALUE);
8038 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(d, Integer.MAX_VALUE);
8039
8040
        // iterates through t
8041 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (int j = 1; j <= m; j++) {
8042 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final char t_j = t.charAt(j - 1); // jth character of t
8043
            d[0] = j;
8044
8045
            // compute stripe indices, constrain to array size
8046 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final int min = Math.max(1, j - threshold);
8047 4 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : Replaced integer subtraction with addition → SURVIVED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : negated conditional → KILLED
            final int max = j > Integer.MAX_VALUE - threshold ? n : Math.min(n, j + threshold);
8048
8049
            // the stripe may lead off of the table if s and t are of different sizes
8050 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > max) {
8051 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
                return -1;
8052
            }
8053
8054
            // ignore entry left of leftmost
8055 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > 1) {
8056 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                d[min - 1] = Integer.MAX_VALUE;
8057
            }
8058
8059
            // iterates through [min, max] in s
8060 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (int i = min; i <= max; i++) {
8061 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                if (s.charAt(i - 1) == t_j) {
8062
                    // diagonally left and up
8063 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                    d[i] = p[i - 1];
8064
                } else {
8065
                    // 1 + minimum of cell to the left, to the top, diagonally left and up
8066 3 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                    d[i] = 1 + Math.min(Math.min(d[i - 1], p[i]), p[i - 1]);
8067
                }
8068
            }
8069
8070
            // copy current distance counts to 'previous row' distance counts
8071
            _d = p;
8072
            p = d;
8073
            d = _d;
8074
        }
8075
8076
        // if p[n] is greater than the threshold, there's no guarantee on it being the correct
8077
        // distance
8078 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (p[n] <= threshold) {
8079 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return p[n];
8080
        }
8081 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return -1;
8082
    }
8083
    
8084
    /**
8085
     * <p>Find the Jaro Winkler Distance which indicates the similarity score between two Strings.</p>
8086
     *
8087
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8088
     * Winkler increased this measure for matching initial characters.</p>
8089
     *
8090
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8091
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8092
     * 
8093
     * <pre>
8094
     * StringUtils.getJaroWinklerDistance(null, null)          = IllegalArgumentException
8095
     * StringUtils.getJaroWinklerDistance("","")               = 0.0
8096
     * StringUtils.getJaroWinklerDistance("","a")              = 0.0
8097
     * StringUtils.getJaroWinklerDistance("aaapppp", "")       = 0.0
8098
     * StringUtils.getJaroWinklerDistance("frog", "fog")       = 0.93
8099
     * StringUtils.getJaroWinklerDistance("fly", "ant")        = 0.0
8100
     * StringUtils.getJaroWinklerDistance("elephant", "hippo") = 0.44
8101
     * StringUtils.getJaroWinklerDistance("hippo", "elephant") = 0.44
8102
     * StringUtils.getJaroWinklerDistance("hippo", "zzzzzzzz") = 0.0
8103
     * StringUtils.getJaroWinklerDistance("hello", "hallo")    = 0.88
8104
     * StringUtils.getJaroWinklerDistance("ABC Corporation", "ABC Corp") = 0.93
8105
     * StringUtils.getJaroWinklerDistance("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8106
     * StringUtils.getJaroWinklerDistance("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8107
     * StringUtils.getJaroWinklerDistance("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8108
     * </pre>
8109
     *
8110
     * @param first the first String, must not be null
8111
     * @param second the second String, must not be null
8112
     * @return result distance
8113
     * @throws IllegalArgumentException if either String input {@code null}
8114
     * @since 3.3
8115
     * @deprecated as of 3.6, due to a misleading name, use {@link #getJaroWinklerSimilarity()} instead
8116
     */
8117
    @Deprecated
8118
    public static double getJaroWinklerDistance(final CharSequence first, final CharSequence second) {
8119
        final double DEFAULT_SCALING_FACTOR = 0.1;
8120
8121 2 1. getJaroWinklerDistance : negated conditional → KILLED
2. getJaroWinklerDistance : negated conditional → KILLED
        if (first == null || second == null) {
8122
            throw new IllegalArgumentException("Strings must not be null");
8123
        }
8124
8125
        final int[] mtp = matches(first, second);
8126
        final double m = mtp[0];
8127 1 1. getJaroWinklerDistance : negated conditional → KILLED
        if (m == 0) {
8128 1 1. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
            return 0D;
8129
        }
8130 7 1. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8131 7 1. getJaroWinklerDistance : changed conditional boundary → SURVIVED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8132 3 1. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8133
    }
8134
8135
    /**
8136
     * <p>Find the Jaro Winkler Similarity which indicates the similarity score between two Strings.</p>
8137
     *
8138
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8139
     * Winkler increased this measure for matching initial characters.</p>
8140
     *
8141
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8142
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8143
     * 
8144
     * <pre>
8145
     * StringUtils.getJaroWinklerSimilarity(null, null)          = IllegalArgumentException
8146
     * StringUtils.getJaroWinklerSimilarity("","")               = 0.0
8147
     * StringUtils.getJaroWinklerSimilarity("","a")              = 0.0
8148
     * StringUtils.getJaroWinklerSimilarity("aaapppp", "")       = 0.0
8149
     * StringUtils.getJaroWinklerSimilarity("frog", "fog")       = 0.93
8150
     * StringUtils.getJaroWinklerSimilarity("fly", "ant")        = 0.0
8151
     * StringUtils.getJaroWinklerSimilarity("elephant", "hippo") = 0.44
8152
     * StringUtils.getJaroWinklerSimilarity("hippo", "elephant") = 0.44
8153
     * StringUtils.getJaroWinklerSimilarity("hippo", "zzzzzzzz") = 0.0
8154
     * StringUtils.getJaroWinklerSimilarity("hello", "hallo")    = 0.88
8155
     * StringUtils.getJaroWinklerSimilarity("ABC Corporation", "ABC Corp") = 0.93
8156
     * StringUtils.getJaroWinklerSimilarity("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8157
     * StringUtils.getJaroWinklerSimilarity("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8158
     * StringUtils.getJaroWinklerSimilarity("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8159
     * </pre>
8160
     *
8161
     * @param first the first String, must not be null
8162
     * @param second the second String, must not be null
8163
     * @return result similarity
8164
     * @throws IllegalArgumentException if either String input {@code null}
8165
     * @since 3.6
8166
     */
8167
    public static double getJaroWinklerSimilarity(final CharSequence first, final CharSequence second) {
8168
        final double DEFAULT_SCALING_FACTOR = 0.1;
8169
8170 2 1. getJaroWinklerSimilarity : negated conditional → KILLED
2. getJaroWinklerSimilarity : negated conditional → KILLED
        if (first == null || second == null) {
8171
            throw new IllegalArgumentException("Strings must not be null");
8172
        }
8173
8174
        int[] mtp = matches(first, second);
8175
        double m = mtp[0];
8176 1 1. getJaroWinklerSimilarity : negated conditional → KILLED
        if (m == 0) {
8177 1 1. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
            return 0D;
8178
        }
8179 7 1. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
        double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8180 7 1. getJaroWinklerSimilarity : changed conditional boundary → SURVIVED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : negated conditional → KILLED
        double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8181 3 1. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8182
    }
8183
8184
    private static int[] matches(final CharSequence first, final CharSequence second) {
8185
        CharSequence max, min;
8186 2 1. matches : changed conditional boundary → SURVIVED
2. matches : negated conditional → KILLED
        if (first.length() > second.length()) {
8187
            max = first;
8188
            min = second;
8189
        } else {
8190
            max = second;
8191
            min = first;
8192
        }
8193 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : Replaced integer subtraction with addition → KILLED
        final int range = Math.max(max.length() / 2 - 1, 0);
8194
        final int[] matchIndexes = new int[min.length()];
8195 1 1. matches : removed call to java/util/Arrays::fill → KILLED
        Arrays.fill(matchIndexes, -1);
8196
        final boolean[] matchFlags = new boolean[max.length()];
8197
        int matches = 0;
8198 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8199
            final char c1 = min.charAt(mi);
8200 6 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : Replaced integer subtraction with addition → KILLED
4. matches : Replaced integer addition with subtraction → KILLED
5. matches : Replaced integer addition with subtraction → KILLED
6. matches : negated conditional → KILLED
            for (int xi = Math.max(mi - range, 0), xn = Math.min(mi + range + 1, max.length()); xi < xn; xi++) {
8201 2 1. matches : negated conditional → KILLED
2. matches : negated conditional → KILLED
                if (!matchFlags[xi] && c1 == max.charAt(xi)) {
8202
                    matchIndexes[mi] = xi;
8203
                    matchFlags[xi] = true;
8204 1 1. matches : Changed increment from 1 to -1 → KILLED
                    matches++;
8205
                    break;
8206
                }
8207
            }
8208
        }
8209
        final char[] ms1 = new char[matches];
8210
        final char[] ms2 = new char[matches];
8211 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < min.length(); i++) {
8212 1 1. matches : negated conditional → KILLED
            if (matchIndexes[i] != -1) {
8213
                ms1[si] = min.charAt(i);
8214 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8215
            }
8216
        }
8217 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < max.length(); i++) {
8218 1 1. matches : negated conditional → KILLED
            if (matchFlags[i]) {
8219
                ms2[si] = max.charAt(i);
8220 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8221
            }
8222
        }
8223
        int transpositions = 0;
8224 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < ms1.length; mi++) {
8225 1 1. matches : negated conditional → KILLED
            if (ms1[mi] != ms2[mi]) {
8226 1 1. matches : Changed increment from 1 to -1 → KILLED
                transpositions++;
8227
            }
8228
        }
8229
        int prefix = 0;
8230 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8231 1 1. matches : negated conditional → KILLED
            if (first.charAt(mi) == second.charAt(mi)) {
8232 1 1. matches : Changed increment from 1 to -1 → KILLED
                prefix++;
8233
            } else {
8234
                break;
8235
            }
8236
        }
8237 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new int[] { matches, transpositions / 2, prefix, max.length() };
8238
    }
8239
8240
    /**
8241
     * <p>Find the Fuzzy Distance which indicates the similarity score between two Strings.</p>
8242
     *
8243
     * <p>This string matching algorithm is similar to the algorithms of editors such as Sublime Text,
8244
     * TextMate, Atom and others. One point is given for every matched character. Subsequent
8245
     * matches yield two bonus points. A higher score indicates a higher similarity.</p>
8246
     *
8247
     * <pre>
8248
     * StringUtils.getFuzzyDistance(null, null, null)                                    = IllegalArgumentException
8249
     * StringUtils.getFuzzyDistance("", "", Locale.ENGLISH)                              = 0
8250
     * StringUtils.getFuzzyDistance("Workshop", "b", Locale.ENGLISH)                     = 0
8251
     * StringUtils.getFuzzyDistance("Room", "o", Locale.ENGLISH)                         = 1
8252
     * StringUtils.getFuzzyDistance("Workshop", "w", Locale.ENGLISH)                     = 1
8253
     * StringUtils.getFuzzyDistance("Workshop", "ws", Locale.ENGLISH)                    = 2
8254
     * StringUtils.getFuzzyDistance("Workshop", "wo", Locale.ENGLISH)                    = 4
8255
     * StringUtils.getFuzzyDistance("Apache Software Foundation", "asf", Locale.ENGLISH) = 3
8256
     * </pre>
8257
     *
8258
     * @param term a full term that should be matched against, must not be null
8259
     * @param query the query that will be matched against a term, must not be null
8260
     * @param locale This string matching logic is case insensitive. A locale is necessary to normalize
8261
     *  both Strings to lower case.
8262
     * @return result score
8263
     * @throws IllegalArgumentException if either String input {@code null} or Locale input {@code null}
8264
     * @since 3.4
8265
     */
8266
    public static int getFuzzyDistance(final CharSequence term, final CharSequence query, final Locale locale) {
8267 2 1. getFuzzyDistance : negated conditional → KILLED
2. getFuzzyDistance : negated conditional → KILLED
        if (term == null || query == null) {
8268
            throw new IllegalArgumentException("Strings must not be null");
8269 1 1. getFuzzyDistance : negated conditional → KILLED
        } else if (locale == null) {
8270
            throw new IllegalArgumentException("Locale must not be null");
8271
        }
8272
8273
        // fuzzy logic is case insensitive. We normalize the Strings to lower
8274
        // case right from the start. Turning characters to lower case
8275
        // via Character.toLowerCase(char) is unfortunately insufficient
8276
        // as it does not accept a locale.
8277
        final String termLowerCase = term.toString().toLowerCase(locale);
8278
        final String queryLowerCase = query.toString().toLowerCase(locale);
8279
8280
        // the resulting score
8281
        int score = 0;
8282
8283
        // the position in the term which will be scanned next for potential
8284
        // query character matches
8285
        int termIndex = 0;
8286
8287
        // index of the previously matched character in the term
8288
        int previousMatchingCharacterIndex = Integer.MIN_VALUE;
8289
8290 3 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
        for (int queryIndex = 0; queryIndex < queryLowerCase.length(); queryIndex++) {
8291
            final char queryChar = queryLowerCase.charAt(queryIndex);
8292
8293
            boolean termCharacterMatchFound = false;
8294 4 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
4. getFuzzyDistance : negated conditional → KILLED
            for (; termIndex < termLowerCase.length() && !termCharacterMatchFound; termIndex++) {
8295
                final char termChar = termLowerCase.charAt(termIndex);
8296
8297 1 1. getFuzzyDistance : negated conditional → KILLED
                if (queryChar == termChar) {
8298
                    // simple character matches result in one point
8299 1 1. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
                    score++;
8300
8301
                    // subsequent character matches further improve
8302
                    // the score.
8303 2 1. getFuzzyDistance : Replaced integer addition with subtraction → KILLED
2. getFuzzyDistance : negated conditional → KILLED
                    if (previousMatchingCharacterIndex + 1 == termIndex) {
8304 1 1. getFuzzyDistance : Changed increment from 2 to -2 → KILLED
                        score += 2;
8305
                    }
8306
8307
                    previousMatchingCharacterIndex = termIndex;
8308
8309
                    // we can leave the nested loop. Every character in the
8310
                    // query can match at most one character in the term.
8311
                    termCharacterMatchFound = true;
8312
                }
8313
            }
8314
        }
8315
8316 1 1. getFuzzyDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return score;
8317
    }
8318
8319
    // startsWith
8320
    //-----------------------------------------------------------------------
8321
8322
    /**
8323
     * <p>Check if a CharSequence starts with a specified prefix.</p>
8324
     *
8325
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8326
     * references are considered to be equal. The comparison is case sensitive.</p>
8327
     *
8328
     * <pre>
8329
     * StringUtils.startsWith(null, null)      = true
8330
     * StringUtils.startsWith(null, "abc")     = false
8331
     * StringUtils.startsWith("abcdef", null)  = false
8332
     * StringUtils.startsWith("abcdef", "abc") = true
8333
     * StringUtils.startsWith("ABCDEF", "abc") = false
8334
     * </pre>
8335
     *
8336
     * @see java.lang.String#startsWith(String)
8337
     * @param str  the CharSequence to check, may be null
8338
     * @param prefix the prefix to find, may be null
8339
     * @return {@code true} if the CharSequence starts with the prefix, case sensitive, or
8340
     *  both {@code null}
8341
     * @since 2.4
8342
     * @since 3.0 Changed signature from startsWith(String, String) to startsWith(CharSequence, CharSequence)
8343
     */
8344
    public static boolean startsWith(final CharSequence str, final CharSequence prefix) {
8345 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, false);
8346
    }
8347
8348
    /**
8349
     * <p>Case insensitive check if a CharSequence starts with a specified prefix.</p>
8350
     *
8351
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8352
     * references are considered to be equal. The comparison is case insensitive.</p>
8353
     *
8354
     * <pre>
8355
     * StringUtils.startsWithIgnoreCase(null, null)      = true
8356
     * StringUtils.startsWithIgnoreCase(null, "abc")     = false
8357
     * StringUtils.startsWithIgnoreCase("abcdef", null)  = false
8358
     * StringUtils.startsWithIgnoreCase("abcdef", "abc") = true
8359
     * StringUtils.startsWithIgnoreCase("ABCDEF", "abc") = true
8360
     * </pre>
8361
     *
8362
     * @see java.lang.String#startsWith(String)
8363
     * @param str  the CharSequence to check, may be null
8364
     * @param prefix the prefix to find, may be null
8365
     * @return {@code true} if the CharSequence starts with the prefix, case insensitive, or
8366
     *  both {@code null}
8367
     * @since 2.4
8368
     * @since 3.0 Changed signature from startsWithIgnoreCase(String, String) to startsWithIgnoreCase(CharSequence, CharSequence)
8369
     */
8370
    public static boolean startsWithIgnoreCase(final CharSequence str, final CharSequence prefix) {
8371 1 1. startsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, true);
8372
    }
8373
8374
    /**
8375
     * <p>Check if a CharSequence starts with a specified prefix (optionally case insensitive).</p>
8376
     *
8377
     * @see java.lang.String#startsWith(String)
8378
     * @param str  the CharSequence to check, may be null
8379
     * @param prefix the prefix to find, may be null
8380
     * @param ignoreCase indicates whether the compare should ignore case
8381
     *  (case insensitive) or not.
8382
     * @return {@code true} if the CharSequence starts with the prefix or
8383
     *  both {@code null}
8384
     */
8385
    private static boolean startsWith(final CharSequence str, final CharSequence prefix, final boolean ignoreCase) {
8386 2 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
        if (str == null || prefix == null) {
8387 3 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
3. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && prefix == null;
8388
        }
8389 2 1. startsWith : changed conditional boundary → SURVIVED
2. startsWith : negated conditional → KILLED
        if (prefix.length() > str.length()) {
8390 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8391
        }
8392 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, 0, prefix, 0, prefix.length());
8393
    }
8394
8395
    /**
8396
     * <p>Check if a CharSequence starts with any of the provided case-sensitive prefixes.</p>
8397
     *
8398
     * <pre>
8399
     * StringUtils.startsWithAny(null, null)      = false
8400
     * StringUtils.startsWithAny(null, new String[] {"abc"})  = false
8401
     * StringUtils.startsWithAny("abcxyz", null)     = false
8402
     * StringUtils.startsWithAny("abcxyz", new String[] {""}) = true
8403
     * StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
8404
     * StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8405
     * StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX") = false
8406
     * StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc") = false
8407
     * </pre>
8408
     *
8409
     * @param sequence the CharSequence to check, may be null
8410
     * @param searchStrings the case-sensitive CharSequence prefixes, may be empty or contain {@code null}
8411
     * @see StringUtils#startsWith(CharSequence, CharSequence)
8412
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8413
     *   the input {@code sequence} begins with any of the provided case-sensitive {@code searchStrings}.
8414
     * @since 2.5
8415
     * @since 3.0 Changed signature from startsWithAny(String, String[]) to startsWithAny(CharSequence, CharSequence...)
8416
     */
8417
    public static boolean startsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8418 2 1. startsWithAny : negated conditional → KILLED
2. startsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8419 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8420
        }
8421 3 1. startsWithAny : changed conditional boundary → KILLED
2. startsWithAny : Changed increment from 1 to -1 → KILLED
3. startsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8422 1 1. startsWithAny : negated conditional → KILLED
            if (startsWith(sequence, searchString)) {
8423 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8424
            }
8425
        }
8426 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8427
    }
8428
8429
    // endsWith
8430
    //-----------------------------------------------------------------------
8431
8432
    /**
8433
     * <p>Check if a CharSequence ends with a specified suffix.</p>
8434
     *
8435
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8436
     * references are considered to be equal. The comparison is case sensitive.</p>
8437
     *
8438
     * <pre>
8439
     * StringUtils.endsWith(null, null)      = true
8440
     * StringUtils.endsWith(null, "def")     = false
8441
     * StringUtils.endsWith("abcdef", null)  = false
8442
     * StringUtils.endsWith("abcdef", "def") = true
8443
     * StringUtils.endsWith("ABCDEF", "def") = false
8444
     * StringUtils.endsWith("ABCDEF", "cde") = false
8445
     * StringUtils.endsWith("ABCDEF", "")    = true
8446
     * </pre>
8447
     *
8448
     * @see java.lang.String#endsWith(String)
8449
     * @param str  the CharSequence to check, may be null
8450
     * @param suffix the suffix to find, may be null
8451
     * @return {@code true} if the CharSequence ends with the suffix, case sensitive, or
8452
     *  both {@code null}
8453
     * @since 2.4
8454
     * @since 3.0 Changed signature from endsWith(String, String) to endsWith(CharSequence, CharSequence)
8455
     */
8456
    public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
8457 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, false);
8458
    }
8459
8460
    /**
8461
     * <p>Case insensitive check if a CharSequence ends with a specified suffix.</p>
8462
     *
8463
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8464
     * references are considered to be equal. The comparison is case insensitive.</p>
8465
     *
8466
     * <pre>
8467
     * StringUtils.endsWithIgnoreCase(null, null)      = true
8468
     * StringUtils.endsWithIgnoreCase(null, "def")     = false
8469
     * StringUtils.endsWithIgnoreCase("abcdef", null)  = false
8470
     * StringUtils.endsWithIgnoreCase("abcdef", "def") = true
8471
     * StringUtils.endsWithIgnoreCase("ABCDEF", "def") = true
8472
     * StringUtils.endsWithIgnoreCase("ABCDEF", "cde") = false
8473
     * </pre>
8474
     *
8475
     * @see java.lang.String#endsWith(String)
8476
     * @param str  the CharSequence to check, may be null
8477
     * @param suffix the suffix to find, may be null
8478
     * @return {@code true} if the CharSequence ends with the suffix, case insensitive, or
8479
     *  both {@code null}
8480
     * @since 2.4
8481
     * @since 3.0 Changed signature from endsWithIgnoreCase(String, String) to endsWithIgnoreCase(CharSequence, CharSequence)
8482
     */
8483
    public static boolean endsWithIgnoreCase(final CharSequence str, final CharSequence suffix) {
8484 1 1. endsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, true);
8485
    }
8486
8487
    /**
8488
     * <p>Check if a CharSequence ends with a specified suffix (optionally case insensitive).</p>
8489
     *
8490
     * @see java.lang.String#endsWith(String)
8491
     * @param str  the CharSequence to check, may be null
8492
     * @param suffix the suffix to find, may be null
8493
     * @param ignoreCase indicates whether the compare should ignore case
8494
     *  (case insensitive) or not.
8495
     * @return {@code true} if the CharSequence starts with the prefix or
8496
     *  both {@code null}
8497
     */
8498
    private static boolean endsWith(final CharSequence str, final CharSequence suffix, final boolean ignoreCase) {
8499 2 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
        if (str == null || suffix == null) {
8500 3 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
3. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && suffix == null;
8501
        }
8502 2 1. endsWith : changed conditional boundary → SURVIVED
2. endsWith : negated conditional → KILLED
        if (suffix.length() > str.length()) {
8503 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8504
        }
8505 1 1. endsWith : Replaced integer subtraction with addition → KILLED
        final int strOffset = str.length() - suffix.length();
8506 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, strOffset, suffix, 0, suffix.length());
8507
    }
8508
8509
    /**
8510
     * <p>
8511
     * Similar to <a
8512
     * href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize
8513
     * -space</a>
8514
     * </p>
8515
     * <p>
8516
     * The function returns the argument string with whitespace normalized by using
8517
     * <code>{@link #trim(String)}</code> to remove leading and trailing whitespace
8518
     * and then replacing sequences of whitespace characters by a single space.
8519
     * </p>
8520
     * In XML Whitespace characters are the same as those allowed by the <a
8521
     * href="http://www.w3.org/TR/REC-xml/#NT-S">S</a> production, which is S ::= (#x20 | #x9 | #xD | #xA)+
8522
     * <p>
8523
     * Java's regexp pattern \s defines whitespace as [ \t\n\x0B\f\r]
8524
     *
8525
     * <p>For reference:</p>
8526
     * <ul>
8527
     * <li>\x0B = vertical tab</li>
8528
     * <li>\f = #xC = form feed</li>
8529
     * <li>#x20 = space</li>
8530
     * <li>#x9 = \t</li>
8531
     * <li>#xA = \n</li>
8532
     * <li>#xD = \r</li>
8533
     * </ul>
8534
     *
8535
     * <p>
8536
     * The difference is that Java's whitespace includes vertical tab and form feed, which this functional will also
8537
     * normalize. Additionally <code>{@link #trim(String)}</code> removes control characters (char &lt;= 32) from both
8538
     * ends of this String.
8539
     * </p>
8540
     *
8541
     * @see Pattern
8542
     * @see #trim(String)
8543
     * @see <a
8544
     *      href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize-space</a>
8545
     * @param str the source String to normalize whitespaces from, may be null
8546
     * @return the modified string with whitespace normalized, {@code null} if null String input
8547
     *
8548
     * @since 3.0
8549
     */
8550
    public static String normalizeSpace(final String str) {
8551
        // LANG-1020: Improved performance significantly by normalizing manually instead of using regex
8552
        // See https://github.com/librucha/commons-lang-normalizespaces-benchmark for performance test
8553 1 1. normalizeSpace : negated conditional → KILLED
        if (isEmpty(str)) {
8554 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8555
        }
8556
        final int size = str.length();
8557
        final char[] newChars = new char[size];
8558
        int count = 0;
8559
        int whitespacesCount = 0;
8560
        boolean startWhitespaces = true;
8561 3 1. normalizeSpace : changed conditional boundary → KILLED
2. normalizeSpace : Changed increment from 1 to -1 → KILLED
3. normalizeSpace : negated conditional → KILLED
        for (int i = 0; i < size; i++) {
8562
            final char actualChar = str.charAt(i);
8563
            final boolean isWhitespace = Character.isWhitespace(actualChar);
8564 1 1. normalizeSpace : negated conditional → KILLED
            if (!isWhitespace) {
8565
                startWhitespaces = false;
8566 2 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
2. normalizeSpace : negated conditional → KILLED
                newChars[count++] = (actualChar == 160 ? 32 : actualChar);
8567
                whitespacesCount = 0;
8568
            } else {
8569 2 1. normalizeSpace : negated conditional → KILLED
2. normalizeSpace : negated conditional → KILLED
                if (whitespacesCount == 0 && !startWhitespaces) {
8570 1 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
                    newChars[count++] = SPACE.charAt(0);
8571
                }
8572 1 1. normalizeSpace : Changed increment from 1 to -1 → SURVIVED
                whitespacesCount++;
8573
            }
8574
        }
8575 1 1. normalizeSpace : negated conditional → KILLED
        if (startWhitespaces) {
8576 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
8577
        }
8578 4 1. normalizeSpace : Replaced integer subtraction with addition → SURVIVED
2. normalizeSpace : changed conditional boundary → KILLED
3. normalizeSpace : negated conditional → KILLED
4. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newChars, 0, count - (whitespacesCount > 0 ? 1 : 0)).trim();
8579
    }
8580
8581
    /**
8582
     * <p>Check if a CharSequence ends with any of the provided case-sensitive suffixes.</p>
8583
     *
8584
     * <pre>
8585
     * StringUtils.endsWithAny(null, null)      = false
8586
     * StringUtils.endsWithAny(null, new String[] {"abc"})  = false
8587
     * StringUtils.endsWithAny("abcxyz", null)     = false
8588
     * StringUtils.endsWithAny("abcxyz", new String[] {""}) = true
8589
     * StringUtils.endsWithAny("abcxyz", new String[] {"xyz"}) = true
8590
     * StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8591
     * StringUtils.endsWithAny("abcXYZ", "def", "XYZ") = true
8592
     * StringUtils.endsWithAny("abcXYZ", "def", "xyz") = false
8593
     * </pre>
8594
     *
8595
     * @param sequence  the CharSequence to check, may be null
8596
     * @param searchStrings the case-sensitive CharSequences to find, may be empty or contain {@code null}
8597
     * @see StringUtils#endsWith(CharSequence, CharSequence)
8598
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8599
     *   the input {@code sequence} ends in any of the provided case-sensitive {@code searchStrings}.
8600
     * @since 3.0
8601
     */
8602
    public static boolean endsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8603 2 1. endsWithAny : negated conditional → KILLED
2. endsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8604 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8605
        }
8606 3 1. endsWithAny : changed conditional boundary → KILLED
2. endsWithAny : Changed increment from 1 to -1 → KILLED
3. endsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8607 1 1. endsWithAny : negated conditional → KILLED
            if (endsWith(sequence, searchString)) {
8608 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8609
            }
8610
        }
8611 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8612
    }
8613
8614
    /**
8615
     * Appends the suffix to the end of the string if the string does not
8616
     * already end with the suffix.
8617
     *
8618
     * @param str The string.
8619
     * @param suffix The suffix to append to the end of the string.
8620
     * @param ignoreCase Indicates whether the compare should ignore case.
8621
     * @param suffixes Additional suffixes that are valid terminators (optional).
8622
     *
8623
     * @return A new String if suffix was appended, the same string otherwise.
8624
     */
8625
    private static String appendIfMissing(final String str, final CharSequence suffix, final boolean ignoreCase, final CharSequence... suffixes) {
8626 3 1. appendIfMissing : negated conditional → KILLED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(suffix) || endsWith(str, suffix, ignoreCase)) {
8627 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8628
        }
8629 3 1. appendIfMissing : changed conditional boundary → SURVIVED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (suffixes != null && suffixes.length > 0) {
8630 3 1. appendIfMissing : changed conditional boundary → KILLED
2. appendIfMissing : Changed increment from 1 to -1 → KILLED
3. appendIfMissing : negated conditional → KILLED
            for (final CharSequence s : suffixes) {
8631 1 1. appendIfMissing : negated conditional → KILLED
                if (endsWith(str, s, ignoreCase)) {
8632 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8633
                }
8634
            }
8635
        }
8636 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str + suffix.toString();
8637
    }
8638
8639
    /**
8640
     * Appends the suffix to the end of the string if the string does not
8641
     * already end with any of the suffixes.
8642
     *
8643
     * <pre>
8644
     * StringUtils.appendIfMissing(null, null) = null
8645
     * StringUtils.appendIfMissing("abc", null) = "abc"
8646
     * StringUtils.appendIfMissing("", "xyz") = "xyz"
8647
     * StringUtils.appendIfMissing("abc", "xyz") = "abcxyz"
8648
     * StringUtils.appendIfMissing("abcxyz", "xyz") = "abcxyz"
8649
     * StringUtils.appendIfMissing("abcXYZ", "xyz") = "abcXYZxyz"
8650
     * </pre>
8651
     * <p>With additional suffixes,</p>
8652
     * <pre>
8653
     * StringUtils.appendIfMissing(null, null, null) = null
8654
     * StringUtils.appendIfMissing("abc", null, null) = "abc"
8655
     * StringUtils.appendIfMissing("", "xyz", null) = "xyz"
8656
     * StringUtils.appendIfMissing("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8657
     * StringUtils.appendIfMissing("abc", "xyz", "") = "abc"
8658
     * StringUtils.appendIfMissing("abc", "xyz", "mno") = "abcxyz"
8659
     * StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz"
8660
     * StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno"
8661
     * StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz"
8662
     * StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"
8663
     * </pre>
8664
     *
8665
     * @param str The string.
8666
     * @param suffix The suffix to append to the end of the string.
8667
     * @param suffixes Additional suffixes that are valid terminators.
8668
     *
8669
     * @return A new String if suffix was appended, the same string otherwise.
8670
     *
8671
     * @since 3.2
8672
     */
8673
    public static String appendIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8674 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, false, suffixes);
8675
    }
8676
8677
    /**
8678
     * Appends the suffix to the end of the string if the string does not
8679
     * already end, case insensitive, with any of the suffixes.
8680
     *
8681
     * <pre>
8682
     * StringUtils.appendIfMissingIgnoreCase(null, null) = null
8683
     * StringUtils.appendIfMissingIgnoreCase("abc", null) = "abc"
8684
     * StringUtils.appendIfMissingIgnoreCase("", "xyz") = "xyz"
8685
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz") = "abcxyz"
8686
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz") = "abcxyz"
8687
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz") = "abcXYZ"
8688
     * </pre>
8689
     * <p>With additional suffixes,</p>
8690
     * <pre>
8691
     * StringUtils.appendIfMissingIgnoreCase(null, null, null) = null
8692
     * StringUtils.appendIfMissingIgnoreCase("abc", null, null) = "abc"
8693
     * StringUtils.appendIfMissingIgnoreCase("", "xyz", null) = "xyz"
8694
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8695
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8696
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "mno") = "axyz"
8697
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz", "mno") = "abcxyz"
8698
     * StringUtils.appendIfMissingIgnoreCase("abcmno", "xyz", "mno") = "abcmno"
8699
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz", "mno") = "abcXYZ"
8700
     * StringUtils.appendIfMissingIgnoreCase("abcMNO", "xyz", "mno") = "abcMNO"
8701
     * </pre>
8702
     *
8703
     * @param str The string.
8704
     * @param suffix The suffix to append to the end of the string.
8705
     * @param suffixes Additional suffixes that are valid terminators.
8706
     *
8707
     * @return A new String if suffix was appended, the same string otherwise.
8708
     *
8709
     * @since 3.2
8710
     */
8711
    public static String appendIfMissingIgnoreCase(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8712 1 1. appendIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, true, suffixes);
8713
    }
8714
8715
    /**
8716
     * Prepends the prefix to the start of the string if the string does not
8717
     * already start with any of the prefixes.
8718
     *
8719
     * @param str The string.
8720
     * @param prefix The prefix to prepend to the start of the string.
8721
     * @param ignoreCase Indicates whether the compare should ignore case.
8722
     * @param prefixes Additional prefixes that are valid (optional).
8723
     *
8724
     * @return A new String if prefix was prepended, the same string otherwise.
8725
     */
8726
    private static String prependIfMissing(final String str, final CharSequence prefix, final boolean ignoreCase, final CharSequence... prefixes) {
8727 3 1. prependIfMissing : negated conditional → KILLED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(prefix) || startsWith(str, prefix, ignoreCase)) {
8728 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8729
        }
8730 3 1. prependIfMissing : changed conditional boundary → SURVIVED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (prefixes != null && prefixes.length > 0) {
8731 3 1. prependIfMissing : changed conditional boundary → KILLED
2. prependIfMissing : Changed increment from 1 to -1 → KILLED
3. prependIfMissing : negated conditional → KILLED
            for (final CharSequence p : prefixes) {
8732 1 1. prependIfMissing : negated conditional → KILLED
                if (startsWith(str, p, ignoreCase)) {
8733 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8734
                }
8735
            }
8736
        }
8737 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prefix.toString() + str;
8738
    }
8739
8740
    /**
8741
     * Prepends the prefix to the start of the string if the string does not
8742
     * already start with any of the prefixes.
8743
     *
8744
     * <pre>
8745
     * StringUtils.prependIfMissing(null, null) = null
8746
     * StringUtils.prependIfMissing("abc", null) = "abc"
8747
     * StringUtils.prependIfMissing("", "xyz") = "xyz"
8748
     * StringUtils.prependIfMissing("abc", "xyz") = "xyzabc"
8749
     * StringUtils.prependIfMissing("xyzabc", "xyz") = "xyzabc"
8750
     * StringUtils.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
8751
     * </pre>
8752
     * <p>With additional prefixes,</p>
8753
     * <pre>
8754
     * StringUtils.prependIfMissing(null, null, null) = null
8755
     * StringUtils.prependIfMissing("abc", null, null) = "abc"
8756
     * StringUtils.prependIfMissing("", "xyz", null) = "xyz"
8757
     * StringUtils.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8758
     * StringUtils.prependIfMissing("abc", "xyz", "") = "abc"
8759
     * StringUtils.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
8760
     * StringUtils.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
8761
     * StringUtils.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
8762
     * StringUtils.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
8763
     * StringUtils.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
8764
     * </pre>
8765
     *
8766
     * @param str The string.
8767
     * @param prefix The prefix to prepend to the start of the string.
8768
     * @param prefixes Additional prefixes that are valid.
8769
     *
8770
     * @return A new String if prefix was prepended, the same string otherwise.
8771
     *
8772
     * @since 3.2
8773
     */
8774
    public static String prependIfMissing(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8775 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, false, prefixes);
8776
    }
8777
8778
    /**
8779
     * Prepends the prefix to the start of the string if the string does not
8780
     * already start, case insensitive, with any of the prefixes.
8781
     *
8782
     * <pre>
8783
     * StringUtils.prependIfMissingIgnoreCase(null, null) = null
8784
     * StringUtils.prependIfMissingIgnoreCase("abc", null) = "abc"
8785
     * StringUtils.prependIfMissingIgnoreCase("", "xyz") = "xyz"
8786
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
8787
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
8788
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
8789
     * </pre>
8790
     * <p>With additional prefixes,</p>
8791
     * <pre>
8792
     * StringUtils.prependIfMissingIgnoreCase(null, null, null) = null
8793
     * StringUtils.prependIfMissingIgnoreCase("abc", null, null) = "abc"
8794
     * StringUtils.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
8795
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8796
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8797
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
8798
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = "xyzabc"
8799
     * StringUtils.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = "mnoabc"
8800
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = "XYZabc"
8801
     * StringUtils.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = "MNOabc"
8802
     * </pre>
8803
     *
8804
     * @param str The string.
8805
     * @param prefix The prefix to prepend to the start of the string.
8806
     * @param prefixes Additional prefixes that are valid (optional).
8807
     *
8808
     * @return A new String if prefix was prepended, the same string otherwise.
8809
     *
8810
     * @since 3.2
8811
     */
8812
    public static String prependIfMissingIgnoreCase(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8813 1 1. prependIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, true, prefixes);
8814
    }
8815
8816
    /**
8817
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8818
     *
8819
     * @param bytes
8820
     *            the byte array to read from
8821
     * @param charsetName
8822
     *            the encoding to use, if null then use the platform default
8823
     * @return a new String
8824
     * @throws UnsupportedEncodingException
8825
     *             If the named charset is not supported
8826
     * @throws NullPointerException
8827
     *             if the input is null
8828
     * @deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of String constants in your code
8829
     * @since 3.1
8830
     */
8831
    @Deprecated
8832
    public static String toString(final byte[] bytes, final String charsetName) throws UnsupportedEncodingException {
8833 2 1. toString : negated conditional → KILLED
2. toString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return charsetName != null ? new String(bytes, charsetName) : new String(bytes, Charset.defaultCharset());
8834
    }
8835
8836
    /**
8837
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8838
     * 
8839
     * @param bytes
8840
     *            the byte array to read from
8841
     * @param charset
8842
     *            the encoding to use, if null then use the platform default
8843
     * @return a new String
8844
     * @throws NullPointerException
8845
     *             if {@code bytes} is null
8846
     * @since 3.2
8847
     * @since 3.3 No longer throws {@link UnsupportedEncodingException}.
8848
     */
8849
    public static String toEncodedString(final byte[] bytes, final Charset charset) {
8850 2 1. toEncodedString : negated conditional → KILLED
2. toEncodedString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(bytes, charset != null ? charset : Charset.defaultCharset());
8851
    }
8852
8853
    /**
8854
     * <p>
8855
     * Wraps a string with a char.
8856
     * </p>
8857
     * 
8858
     * <pre>
8859
     * StringUtils.wrap(null, *)        = null
8860
     * StringUtils.wrap("", *)          = ""
8861
     * StringUtils.wrap("ab", '\0')     = "ab"
8862
     * StringUtils.wrap("ab", 'x')      = "xabx"
8863
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8864
     * StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""
8865
     * </pre>
8866
     * 
8867
     * @param str
8868
     *            the string to be wrapped, may be {@code null}
8869
     * @param wrapWith
8870
     *            the char that will wrap {@code str}
8871
     * @return the wrapped string, or {@code null} if {@code str==null}
8872
     * @since 3.4
8873
     */
8874
    public static String wrap(final String str, final char wrapWith) {
8875
8876 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8877 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8878
        }
8879
8880 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith + str + wrapWith;
8881
    }
8882
8883
    /**
8884
     * <p>
8885
     * Wraps a String with another String.
8886
     * </p>
8887
     * 
8888
     * <p>
8889
     * A {@code null} input String returns {@code null}.
8890
     * </p>
8891
     * 
8892
     * <pre>
8893
     * StringUtils.wrap(null, *)         = null
8894
     * StringUtils.wrap("", *)           = ""
8895
     * StringUtils.wrap("ab", null)      = "ab"
8896
     * StringUtils.wrap("ab", "x")       = "xabx"
8897
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8898
     * StringUtils.wrap("\"ab\"", "\"")  = "\"\"ab\"\""
8899
     * StringUtils.wrap("ab", "'")       = "'ab'"
8900
     * StringUtils.wrap("'abcd'", "'")   = "''abcd''"
8901
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8902
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8903
     * </pre>
8904
     * 
8905
     * @param str
8906
     *            the String to be wrapper, may be null
8907
     * @param wrapWith
8908
     *            the String that will wrap str
8909
     * @return wrapped String, {@code null} if null String input
8910
     * @since 3.4
8911
     */
8912
    public static String wrap(final String str, final String wrapWith) {
8913
8914 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
8915 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8916
        }
8917
8918 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith.concat(str).concat(wrapWith);
8919
    }
8920
8921
    /**
8922
     * <p>
8923
     * Wraps a string with a char if that char is missing from the start or end of the given string.
8924
     * </p>
8925
     * 
8926
     * <pre>
8927
     * StringUtils.wrap(null, *)        = null
8928
     * StringUtils.wrap("", *)          = ""
8929
     * StringUtils.wrap("ab", '\0')     = "ab"
8930
     * StringUtils.wrap("ab", 'x')      = "xabx"
8931
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8932
     * StringUtils.wrap("\"ab\"", '\"') = "\"ab\""
8933
     * StringUtils.wrap("/", '/')  = "/"
8934
     * StringUtils.wrap("a/b/c", '/')  = "/a/b/c/"
8935
     * StringUtils.wrap("/a/b/c", '/')  = "/a/b/c/"
8936
     * StringUtils.wrap("a/b/c/", '/')  = "/a/b/c/"
8937
     * </pre>
8938
     * 
8939
     * @param str
8940
     *            the string to be wrapped, may be {@code null}
8941
     * @param wrapWith
8942
     *            the char that will wrap {@code str}
8943
     * @return the wrapped string, or {@code null} if {@code str==null}
8944
     * @since 3.5
8945
     */
8946
    public static String wrapIfMissing(final String str, final char wrapWith) {
8947 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8948 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8949
        }
8950 1 1. wrapIfMissing : Replaced integer addition with subtraction → KILLED
        final StringBuilder builder = new StringBuilder(str.length() + 2);
8951 1 1. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(0) != wrapWith) {
8952
            builder.append(wrapWith);
8953
        }
8954
        builder.append(str);
8955 2 1. wrapIfMissing : Replaced integer subtraction with addition → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(str.length() - 1) != wrapWith) {
8956
            builder.append(wrapWith);
8957
        }
8958 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
8959
    }
8960
8961
    /**
8962
     * <p>
8963
     * Wraps a string with a string if that string is missing from the start or end of the given string.
8964
     * </p>
8965
     * 
8966
     * <pre>
8967
     * StringUtils.wrap(null, *)         = null
8968
     * StringUtils.wrap("", *)           = ""
8969
     * StringUtils.wrap("ab", null)      = "ab"
8970
     * StringUtils.wrap("ab", "x")       = "xabx"
8971
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8972
     * StringUtils.wrap("\"ab\"", "\"")  = "\"ab\""
8973
     * StringUtils.wrap("ab", "'")       = "'ab'"
8974
     * StringUtils.wrap("'abcd'", "'")   = "'abcd'"
8975
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8976
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8977
     * StringUtils.wrap("/", "/")  = "/"
8978
     * StringUtils.wrap("a/b/c", "/")  = "/a/b/c/"
8979
     * StringUtils.wrap("/a/b/c", "/")  = "/a/b/c/"
8980
     * StringUtils.wrap("a/b/c/", "/")  = "/a/b/c/"
8981
     * </pre>
8982
     * 
8983
     * @param str
8984
     *            the string to be wrapped, may be {@code null}
8985
     * @param wrapWith
8986
     *            the char that will wrap {@code str}
8987
     * @return the wrapped string, or {@code null} if {@code str==null}
8988
     * @since 3.5
8989
     */
8990
    public static String wrapIfMissing(final String str, final String wrapWith) {
8991 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
8992 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8993
        }
8994 2 1. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
2. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder builder = new StringBuilder(str.length() + wrapWith.length() + wrapWith.length());
8995 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.startsWith(wrapWith)) {
8996
            builder.append(wrapWith);
8997
        }
8998
        builder.append(str);
8999 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.endsWith(wrapWith)) {
9000
            builder.append(wrapWith);
9001
        }
9002 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
9003
    }
9004
9005
    /**
9006
     * <p>
9007
     * Unwraps a given string from anther string.
9008
     * </p>
9009
     *
9010
     * <pre>
9011
     * StringUtils.unwrap(null, null)         = null
9012
     * StringUtils.unwrap(null, "")           = null
9013
     * StringUtils.unwrap(null, "1")          = null
9014
     * StringUtils.unwrap("\'abc\'", "\'")    = "abc"
9015
     * StringUtils.unwrap("\"abc\"", "\"")    = "abc"
9016
     * StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"
9017
     * StringUtils.unwrap("A", "#")           = "A"
9018
     * StringUtils.unwrap("#A", "#")          = "#A"
9019
     * StringUtils.unwrap("A#", "#")          = "A#"
9020
     * </pre>
9021
     *
9022
     * @param str
9023
     *          the String to be unwrapped, can be null
9024
     * @param wrapToken
9025
     *          the String used to unwrap
9026
     * @return unwrapped String or the original string 
9027
     *          if it is not quoted properly with the wrapToken
9028
     * @since 3.6
9029
     */
9030
    public static String unwrap(final String str, final String wrapToken) {
9031 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapToken)) {
9032 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9033
        }
9034
9035 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (startsWith(str, wrapToken) && endsWith(str, wrapToken)) {
9036
            int startIndex = str.indexOf(wrapToken);
9037
            int endIndex = str.lastIndexOf(wrapToken);
9038
            int wrapLength = wrapToken.length();
9039 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9040 2 1. unwrap : Replaced integer addition with subtraction → KILLED
2. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + wrapLength, endIndex);
9041
            }
9042
        }
9043
9044 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9045
    }
9046
9047
    /**
9048
     * <p>
9049
     * Unwraps a given string from a character.
9050
     * </p>
9051
     * 
9052
     * <pre>
9053
     * StringUtils.unwrap(null, null)         = null
9054
     * StringUtils.unwrap(null, '\0')         = null
9055
     * StringUtils.unwrap(null, '1')          = null
9056
     * StringUtils.unwrap("\'abc\'", '\'')    = "abc"
9057
     * StringUtils.unwrap("AABabcBAA", 'A')  = "ABabcBA"
9058
     * StringUtils.unwrap("A", '#')           = "A"
9059
     * StringUtils.unwrap("#A", '#')          = "#A"
9060
     * StringUtils.unwrap("A#", '#')          = "A#"
9061
     * </pre>
9062
     *
9063
     * @param str
9064
     *          the String to be unwrapped, can be null
9065
     * @param wrapChar
9066
     *          the character used to unwrap
9067
     * @return unwrapped String or the original string 
9068
     *          if it is not quoted properly with the wrapChar
9069
     * @since 3.6
9070
     */
9071
    public static String unwrap(final String str, final char wrapChar) {
9072 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || wrapChar == '\0') {
9073 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9074
        }
9075
9076 3 1. unwrap : Replaced integer subtraction with addition → KILLED
2. unwrap : negated conditional → KILLED
3. unwrap : negated conditional → KILLED
        if (str.charAt(0) == wrapChar && str.charAt(str.length() - 1) == wrapChar) {
9077
            int startIndex = 0;
9078 1 1. unwrap : Replaced integer subtraction with addition → KILLED
            int endIndex = str.length() - 1;
9079 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9080 2 1. unwrap : Replaced integer addition with subtraction → KILLED
2. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + 1, endIndex);
9081
            }
9082
        }
9083
9084 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9085
    }
9086
}

Mutations

210

1.1
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

229

1.1
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

250

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

251

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

253

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

254

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

255

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

258

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

279

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

280

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

282

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

283

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

284

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

287

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

308

1.1
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

329

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

330

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

332

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

333

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

334

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

337

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

358

1.1
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

380

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

381

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

383

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

384

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

385

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

388

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

410

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

411

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

413

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

414

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

415

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

418

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

440

1.1
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

469

1.1
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED

496

1.1
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

521

1.1
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

556

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

619

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

622

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

625

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

626

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

628

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

629

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

631

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

632

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

633

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

635

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

663

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

690

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

691

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

694

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

720

1.1
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

750

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

751

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

754

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

783

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

784

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

787

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

788

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

789

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

791

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

792

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

794

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

795

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

798

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

828

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

829

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

832

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

833

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

834

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from -1 to 1 → KILLED

836

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

837

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

839

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

840

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

843

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

868

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

898

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

899

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

902

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

905

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

927

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

928

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

932

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED

934

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

938

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

939

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

942

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

973

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

974

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

976

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

977

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

979

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

980

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

982

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

983

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

985

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1010

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1011

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1012

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1013

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1014

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1015

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1017

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1056

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1094

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1095

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1097

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1098

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1100

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1101

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1103

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1144

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1187

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1188

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1190

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1191

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1193

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1194

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1196

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1219

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1220

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1221

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1222

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1226

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1250

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1251

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1252

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1253

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1257

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1283

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1284

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1286

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1316

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1317

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1319

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1347

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1348

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1350

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1387

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1388

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1390

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1444

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1463

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1464

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1466

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1467

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1472

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1474

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1475

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer subtraction with addition → KILLED

1477

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1479

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1480

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1482

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

1483

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1484

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1513

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1549

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1550

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1552

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1555

1.1
Location : indexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1556

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1557

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1559

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1560

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1562

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1563

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1564

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1567

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1593

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1594

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1596

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1631

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1632

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1634

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1661

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1662

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1664

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1702

1.1
Location : lastOrdinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1742

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1743

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1745

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1772

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1773

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1775

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1811

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1812

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1814

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1815

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1817

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1818

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1820

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1821

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1824

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1825

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1826

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1829

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1855

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1856

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1858

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1884

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1885

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1887

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1915

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1916

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1919

1.1
Location : containsIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1920

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1921

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1922

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1925

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1938

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1939

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1942

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1943

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1944

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1947

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1976

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1977

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1980

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1982

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1983

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1985

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1986

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1987

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1989

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1990

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1993

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1998

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2025

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2026

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2028

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2059

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2060

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2064

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2065

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2066

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2068

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2069

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2070

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2071

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2073

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2075

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2076

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2080

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2085

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2120

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2121

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2123

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2152

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2153

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2155

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2156

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2157

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2160

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2190

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2191

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2194

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2196

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2198

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2200

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2201

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2202

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2203

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2211

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2213

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2240

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2241

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2244

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2246

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2247

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2248

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2249

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2250

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2253

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2254

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2258

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2287

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2288

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2290

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2291

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2293

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2294

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2296

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2323

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2324

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2326

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2355

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2356

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2359

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2361

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2362

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2364

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2365

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2366

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2367

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2369

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2371

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2372

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2376

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2381

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2408

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2409

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2411

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2444

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2445

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2453

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2455

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2459

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2463

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2468

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2498

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2499

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2504

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2506

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2510

1.1
Location : lastIndexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2514

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2544

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2545

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2549

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2550

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2553

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2556

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2557

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2560

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2599

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2600

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2604

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2605

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2607

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2608

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2612

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2617

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2618

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2621

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2624

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2628

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2654

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2655

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2657

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2658

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2660

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2661

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2663

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2687

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2688

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2690

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2691

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2693

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2694

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2696

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2725

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2726

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2728

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

4.4
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2729

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2731

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2734

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2735

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2737

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2770

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2771

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2773

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2774

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2777

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2778

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2780

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2812

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2813

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2815

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2816

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2819

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2820

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2822

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2853

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2854

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2857

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2858

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2860

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2893

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2894

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2896

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2897

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2900

1.1
Location : substringAfterLast
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2901

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2903

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2930

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2961

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2962

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2965

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2966

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2967

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2968

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2971

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2997

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2998

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3001

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3002

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3008

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3010

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3013

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3015

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3019

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3021

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3022

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3024

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3055

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3083

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3112

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3146

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3173

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3204

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3233

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

3266

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3285

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3286

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3291

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3292

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3295

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3297

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3306

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3309

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3310

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3311

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3313

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3324

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3328

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3329

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3330

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3337

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

3346

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3375

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3411

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3429

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3430

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3433

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3434

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3440

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3441

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3442

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3447

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3452

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3454

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3457

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3494

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3534

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3556

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3557

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3560

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3561

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3568

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3570

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3571

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3572

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3574

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3581

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3586

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3588

1.1
Location : splitWorker
Killed by : none
negated conditional → SURVIVED

3591

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3592

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3593

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3595

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3602

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3607

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3611

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3612

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3613

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3615

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3622

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3627

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3630

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3633

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3656

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3684

1.1
Location : splitByCharacterTypeCamelCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

3702

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3703

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3705

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3706

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3712

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3714

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3717

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3718

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3719

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3720

1.1
Location : splitByCharacterType
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3724

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3729

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3730

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3759

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3785

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3786

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3788

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3817

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3818

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3820

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3849

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3850

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3852

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3881

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3882

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3884

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3913

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3914

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3916

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3945

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3946

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3948

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3977

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3978

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3980

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4009

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4010

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4012

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4043

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4044

1.1
Location : join
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

4046

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4047

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4048

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4050

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4051

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4052

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4055

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4059

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4094

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4095

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4097

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4098

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4099

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4101

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4102

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4103

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4108

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4143

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4144

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4146

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4147

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4148

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4150

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4151

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4152

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4157

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4192

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4193

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4195

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4196

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4197

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4199

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4200

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4201

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4206

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4241

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4242

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4244

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4245

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4246

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4248

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4249

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4250

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4255

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4290

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4291

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4293

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4294

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4295

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4297

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4298

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4299

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4304

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4339

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4340

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4342

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4343

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4344

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4346

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4347

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4348

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4353

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4388

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4389

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4391

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4392

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4393

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4395

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4396

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4397

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4402

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4430

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4431

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4433

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4472

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4473

1.1
Location : join
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

4475

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4481

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4482

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4483

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4486

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4488

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4489

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4492

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4496

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4516

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4517

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4519

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4520

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4523

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4525

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4530

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4534

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4537

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4542

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4561

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4562

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4564

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4565

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4568

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4570

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4575

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4579

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4580

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4584

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4588

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4606

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4607

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4609

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4627

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4628

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4630

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4654

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWithThrowsException(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4663

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4667

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4672

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED

4692

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4693

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4698

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4699

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4700

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4703

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4704

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4706

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4736

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4737

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4739

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4740

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4742

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4771

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4772

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4774

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4775

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4777

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4805

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4806

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4808

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4809

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4811

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4841

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4842

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4844

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4845

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4847

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4874

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4875

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4877

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4914

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4915

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4917

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4940

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4941

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4945

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4946

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4947

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4950

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4997

1.1
Location : removeAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5043

1.1
Location : removeFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5072

1.1
Location : replaceOnce
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED

5101

1.1
Location : replaceOnceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5144

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5145

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5147

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5181

1.1
Location : removePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5233

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5234

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5236

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5286

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5287

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5289

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5316

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5344

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5376

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5411

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5412

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5415

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5421

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5422

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5425

1.1
Location : replace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5426

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5427

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : replace
Killed by : none
Replaced integer multiplication with division → SURVIVED

4.4
Location : replace
Killed by : none
negated conditional → SURVIVED

5.5
Location : replace
Killed by : none
negated conditional → SURVIVED

5428

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringEscapeUtilsTest.testEscapeCsvWriter(org.apache.commons.lang3.StringEscapeUtilsTest)
Replaced integer addition with subtraction → KILLED

5429

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5431

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5432

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5438

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5471

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5514

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5562

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5563

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED

5622

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6.6
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5624

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5628

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5637

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5654

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5655

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5656

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5662

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5665

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5674

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5675

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5684

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5685

1.1
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5688

1.1
Location : replaceEach
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5689

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5690

1.1
Location : replaceEach
Killed by : none
Replaced integer multiplication with division → SURVIVED

2.2
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5694

1.1
Location : replaceEach
Killed by : none
Replaced integer division with multiplication → SURVIVED

5696

1.1
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5698

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5700

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5705

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5712

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5713

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5714

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5720

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5723

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5733

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5737

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5738

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5741

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5767

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5768

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringCharChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5770

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5810

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5811

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5813

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5820

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5823

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5825

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5832

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5833

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5835

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5870

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5871

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5873

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5877

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5880

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5883

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5886

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5889

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5894

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : overlay
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5929

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5930

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5933

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5935

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5936

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5938

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5941

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

5944

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5945

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5946

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

5948

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5949

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

5951

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5983

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

6012

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6013

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6016

1.1
Location : chop
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6017

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6019

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6022

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6023

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6025

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6054

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6055

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6057

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6058

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6061

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6062

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6064

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : repeat
Killed by : none
negated conditional → SURVIVED

6065

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6068

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

6071

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6076

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

3.3
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

5.5
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6.6
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6078

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6080

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6083

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6086

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6111

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6112

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6116

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6142

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6143

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6146

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6149

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6172

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6197

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6198

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6200

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6201

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6202

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6204

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6205

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6207

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6234

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6235

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6237

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6242

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6243

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6244

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6246

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6247

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6250

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6251

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6252

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6253

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6257

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6258

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6260

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6284

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6309

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6310

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6312

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6313

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6314

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6316

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6317

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6319

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6346

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6347

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6349

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6354

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6355

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6356

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6358

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6359

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6362

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6363

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6364

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6365

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6369

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6370

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6372

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6388

1.1
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthStringBuffer(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthStringBuffer(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6417

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6445

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6446

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6449

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6450

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6451

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6453

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6455

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6485

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6486

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6488

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6492

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6493

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6494

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6496

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6498

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6523

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6524

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6526

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6546

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6547

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6549

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6572

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6573

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6575

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6595

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6596

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6598

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6624

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6625

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6630

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6632

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6637

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6638

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6640

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6641

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6643

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6669

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6670

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6675

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6677

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6682

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6683

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6685

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6686

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6688

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6719

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6720

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6726

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6729

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6731

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6733

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6738

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6739

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6741

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6767

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6768

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6772

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6773

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6774

1.1
Location : countMatches
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

6776

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6799

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6800

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6804

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6805

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6806

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6809

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6835

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6836

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6839

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6840

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6841

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6844

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6870

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6871

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6874

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6875

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6876

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6879

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6905

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6906

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6909

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6910

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6911

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6914

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6940

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6941

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6944

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6945

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6946

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6949

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6979

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6980

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6983

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6984

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6985

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6988

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7023

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7024

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7027

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7028

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7029

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7032

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7062

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7063

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7066

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7067

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7068

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7071

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7095

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7096

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7099

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7100

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7101

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7104

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7130

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7131

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7134

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7135

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7136

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7139

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7165

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7166

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7169

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7170

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7171

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7174

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7196

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7217

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7239

1.1
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED

7261

1.1
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

7293

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7294

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7298

1.1
Location : rotate
Killed by : none
Replaced integer modulus with multiplication → SURVIVED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7299

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7303

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
removed negation → KILLED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

7306

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7326

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7327

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7329

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7352

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7353

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7358

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED

7359

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7397

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7437

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7477

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7518

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7519

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7523

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7524

1.1
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

7526

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7529

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7530

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7532

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7535

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7536

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

7538

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7539

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7541

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7544

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7545

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7547

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7580

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7581

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7584

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7585

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7588

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7589

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7590

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7597

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7631

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7632

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7634

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7635

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7638

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7639

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7641

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7670

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7671

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7673

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7674

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7677

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7678

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7682

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7683

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7685

1.1
Location : indexOfDifference
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

7721

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7722

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7733

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7734

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7745

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7746

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7750

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7751

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7756

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7758

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7759

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7764

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7769

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7773

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7775

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7812

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7813

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7816

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7818

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7819

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7821

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7822

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7824

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7827

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7866

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7873

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7874

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7875

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7876

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7879

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7888

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7898

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7902

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7904

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7907

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7909

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7911

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7916

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7952

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNullInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7955

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringNegativeInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8007

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8008

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8009

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8010

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8013

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8014

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8017

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8026

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8027

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8031

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8032

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8037

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8038

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8041

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8042

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8046

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8047

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8050

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8051

1.1
Location : getLevenshteinDistance
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

8055

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8056

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8060

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8061

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8063

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8066

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8078

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8079

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8081

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8121

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8127

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8128

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8130

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8131

1.1
Location : getJaroWinklerDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8132

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8170

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8176

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8177

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8179

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8180

1.1
Location : getJaroWinklerSimilarity
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8181

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8186

1.1
Location : matches
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8193

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8195

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
removed call to java/util/Arrays::fill → KILLED

8198

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8200

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6.6
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8201

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8204

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8211

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8212

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8214

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8217

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8218

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8220

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8224

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8225

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8226

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8230

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8231

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8232

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8237

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED

8267

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_NullStringLocale(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringNullLoclae(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8269

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringStringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8290

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8294

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8297

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8299

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8303

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8304

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 2 to -2 → KILLED

8316

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8345

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8371

1.1
Location : startsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8386

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8387

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8389

1.1
Location : startsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8390

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8392

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8418

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8419

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8421

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8422

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8423

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8426

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8457

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8484

1.1
Location : endsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8499

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8500

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8502

1.1
Location : endsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8503

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8505

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8506

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8553

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8554

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8561

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8564

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8566

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8569

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8570

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8572

1.1
Location : normalizeSpace
Killed by : none
Changed increment from 1 to -1 → SURVIVED

8575

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8576

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8578

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8603

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8604

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8606

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8607

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8608

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8611

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8626

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8627

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8629

1.1
Location : appendIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8630

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8631

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8632

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8636

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8674

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8712

1.1
Location : appendIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8727

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8728

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8730

1.1
Location : prependIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8731

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8732

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8733

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8737

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8775

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8813

1.1
Location : prependIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8833

1.1
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8850

1.1
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8876

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8877

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8880

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8914

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8915

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8918

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8947

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8948

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8950

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8951

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8955

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8958

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8991

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8992

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8994

1.1
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

8995

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8999

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9002

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9031

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9032

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9035

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9039

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9040

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9044

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9072

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9073

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9076

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9078

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

9079

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9080

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9084

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

Active mutators

Tests examined


Report generated by PIT 1.1.10